Improving web browser security with a Steem-like blockchain by anonymint

View this thread on steempeak.com
· @anonymint · (edited)
$2,599.30
Improving web browser security with a Steem-like blockchain
I will attempt to explain in laymen’s lingo how blockchains such as Steem which can store and serve media files, could potentially be used to **dramatically improve and decentralize web browser security**.

This is illustrating by-example the revolutionary ecosystem applications of decentralized content storage and serving from blockchains such as Steem.

## Securing Money On The Web

https://pixabay.com/static/uploads/photo/2016/02/15/23/40/security-1202344_960_720.png

The security of our web browser is becoming critical for example when our monetarily valuable credentials (e.g. Steem or online banking passwords) are accessible to the scripts that run in the browser. Although the recent cracking of numerous Steem(it) private keys wasn’t due to a web browser vulnerability¹ (the attacker presumably partook the lowest hanging fruit first), web browser security will remain a threat since for example [the private key for posting to Steem(it) must be always accessible to the web browser](https://steemit.com/steem/@pharesim/bounty-for-completion-of-native-javascript-steem-signer#@theoretical/re-trogdor-re-pharesim-re-mrosenquist-re-pharesim-bounty-for-completion-of-native-javascript-steem-signer-20160802t003022609z) (unless the user will be prompted to type in their password every time they click anything on the site, which would be absurd).

## Centralized Web Security

Browsers are vulnerable to XSS (Cross-Site Scripting) attacks which inject the attacker’s scripts inside the site’s scripts. The first line of defense is to employ [careful, tedious programming methods](https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)) to attempt to not commit mistakes which enable the attacker to inject scripts. However these mistakes can still occur, so the second line of defense² is to whitelist only trusted web addresses from which scripts can be loaded for the site; and [disable any other ways to load scripts](https://www.w3.org/TR/CSP2/#directive-script-src). However, this [Content Security Policy standard](https://developer.mozilla.org/en-US/docs/Web/Security/CSP/Introducing_Content_Security_Policy) **suffers from the weaknesses of centralization and centralized trust**, because it requires the site to [only load its scripts from a whitelist of web addresses](https://w3c.github.io/webappsec-csp/#fetch-integration) and to trust that the site is always in control over the files served from those web addresses (which can be compromised for example by a hacker or even hypothetically if the certificate authorities for those web addresses are compromised).

## Decentralized Content

The aforementioned centralization requirement of browser Content Security Policy could be debilitating for one aspect of future Steemit improvements where we would really like for all the content (including the site’s scripts) to be loadable from any node on the Steem network, so as to squelch the distributed-denial-of-service (DDoS) attacks that had caused recent site outages, to make the system impervious to government take down orders, and other resiliency, censorship-resistance, and scaling benefits. But there is no way in current Content Security Policy to implement such decentralization and insure the scripts are the authentic ones, because current Content Security Policy whitelists only web addresses and doesn’t incorporate any cryptographic signatures.

## Decentralized Web Security

The blockchain and cryptography can provide the solution. Since for example the author of Steemit can cryptographically sign the scripts that power the Steemit site and store them on the blockchain, then it should be possible to modify web browsers so they allow a whitelist of allowed scripts based on the public key of the signer of the scripts. Thus for example only the author of Steemit would be able to sign scripts which are permissioned to power the Steemit site and the web browser which loads the Steemit site (from any decentralized nodes of the blockchain) would know to only load resources signed by the author of Steemit. The epiphany is the authority for the scripts that power a site **shifts from a centralized, attackable resource (of web address, web server, and certificate authority) to a decentralized, cryptographically secure signature**.

Anne van Kesteren who is the listed author of several web standards documents such as Fetch, [wrote about](https://annevankesteren.nl/2016/07/web-computing) the importance of decentralization in web computing security.

> There are two computing models today that have mass-market appeal, are safe-by-default, are app-driven (no OS access), and provide some degree of sandboxing for their apps: Web and Store. The major difference is that Web computing has decentralized publishing (**it would be distributed if not for domain registrars and certificate authorities**) and Store computing is by definition centralized. Decentralizing Store computing is unlikely to ever succeed and I have argued before that such a system cannot reasonably exist as part of Web computing. (Arguably Web computing is a form of centralized computing. Certificate authorities are ultimately grounded in a list managed by the browser or the OS the browser runs in.) ...

---------

¹ The Steem private keys were cracked because the corresponding public keys were publicly accessible on the blockchain which enabled the attacker to run a high-speed dictionary attack, which was effective against users who had chosen a weak password since the entropy of the private keys were derived from the user chosen passwords. In other words, the attacker was able to repeatedly trial potential matches for the users’ password at perhaps millions or billions per second. Normally websites rate-limit login attempts to prevent dictionary attacks (since a human can’t sign-in millions of times per second), but this firewall isn’t possible when the public keys must be public. The only solution was to force users to use a strong password with sufficient randomized entropy.

² [HTTP access control (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS) is third line of defense which enables web addresses to whitelist which sites may load their scripts, which seems to be mostly impotent, [complexity smell](https://fetch.spec.whatwg.org/#main-fetch) “security theater”.
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 99 others
properties (23)
post_id447,756
authoranonymint
permlinkimproving-web-browser-security-with-a-steem-like-blockchain
categoryblockchain
json_metadata"{"image": ["https://pixabay.com/static/uploads/photo/2016/02/15/23/40/security-1202344_960_720.png"], "tags": ["blockchain", "security", "steem", "steemit", ""]}"
created2016-08-04 16:40:36
last_update2016-08-04 17:07:51
depth0
children17
net_rshares98,072,153,908,011
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value1,980.832 SBD
curator_payout_value618.466 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length6,347
author_reputation28,256,027,925,444
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (163)
@redddet ·
properties (23)
post_id447,769
authorredddet
permlinkimproving-web-browser-security-with-a-steem-like-blockchain
categoryblockchain
json_metadata{}
created2016-08-04 16:41:12
last_update2016-08-04 16:41:12
depth1
children0
net_rshares329,044,735
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length44
author_reputation-747,021,898,927
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (43)
@aidar88 ·
Thank you for the article. Everything is painted in detail!
👎  
properties (23)
post_id447,771
authoraidar88
permlinkre-anonymint-improving-web-browser-security-with-a-steem-like-blockchain-20160804t164108380z
categoryblockchain
json_metadata"{"tags": ["blockchain"]}"
created2016-08-04 16:41:15
last_update2016-08-04 16:41:15
depth1
children0
net_rshares-3,705,983,799
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length59
author_reputation8,867,021,832
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@cheetah ·
Hi! I am a content-detection robot. This post is to help manual curators; I have NOT flagged you.
Here is similar content:
https://annevankesteren.nl/2016/07/web-computing
👍  , , ,
👎  ,
properties (23)
post_id447,792
authorcheetah
permlinkre-improving-web-browser-security-with-a-steem-like-blockchain-20160804t164233
categoryblockchain
json_metadata{}
created2016-08-04 16:42:36
last_update2016-08-04 16:42:36
depth1
children2
net_rshares-279,892,262,575
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length171
author_reputation750,854,098,279,735
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (6)
@smooth ·
Looks like a false positive based on similar subject matter to me.
properties (22)
post_id451,261
authorsmooth
permlinkre-cheetah-re-improving-web-browser-security-with-a-steem-like-blockchain-20160804t164233-20160804t203502200z
categoryblockchain
json_metadata"{"tags": ["blockchain"]}"
created2016-08-04 20:35:03
last_update2016-08-04 20:35:03
depth2
children1
net_rshares0
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length66
author_reputation119,002,354,889,508
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@chryspano ·
It seems the small quoted paragraph causes the bot to misbehave
properties (22)
post_id453,860
authorchryspano
permlinkre-smooth-re-cheetah-re-improving-web-browser-security-with-a-steem-like-blockchain-20160804t164233-20160804t234856903z
categoryblockchain
json_metadata"{"tags": ["blockchain"]}"
created2016-08-04 23:48:57
last_update2016-08-04 23:48:57
depth3
children0
net_rshares0
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length63
author_reputation1,737,800,828,749
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@gekko · (edited)
$5.39
we need to fork Brave Browser to integrate Steem Blockchain tech ! 
latest news about Brave here -> [Forbes Article](http://www.forbes.com/sites/jonathanchester/2016/08/01/blockchain-powered-micropayment-browser-brave-raises-4-5m/#7beeafd27141)
good post @anonymint 8]
👍  , , ,
properties (23)
post_id447,812
authorgekko
permlinkre-anonymint-improving-web-browser-security-with-a-steem-like-blockchain-20160804t164350413z
categoryblockchain
json_metadata"{"users": ["anonymint"], "links": ["http://www.forbes.com/sites/jonathanchester/2016/08/01/blockchain-powered-micropayment-browser-brave-raises-4-5m/#7beeafd27141"], "tags": ["blockchain"]}"
created2016-08-04 16:43:51
last_update2016-08-04 16:44:39
depth1
children2
net_rshares2,963,801,090,846
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value4.048 SBD
curator_payout_value1.346 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length268
author_reputation1,183,949,922,229
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (4)
@recursive ·
What an intriguing, potentially excellent idea you have here! I'd be interested to read more about how that would work in terms of incentives. That would deserve its own post, page me here if you decide to go for it.
👍  
properties (23)
post_id456,019
authorrecursive
permlinkre-gekko-re-anonymint-improving-web-browser-security-with-a-steem-like-blockchain-20160805t031145769z
categoryblockchain
json_metadata"{"tags": ["blockchain"]}"
created2016-08-05 03:10:36
last_update2016-08-05 03:10:36
depth2
children1
net_rshares1,319,764,775
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length216
author_reputation14,565,766,155,244
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@gekko · (edited)
do the post @recursive no problem, i want to see what we get from all the community 8]
👍  
properties (23)
post_id465,626
authorgekko
permlinkre-recursive-re-gekko-re-anonymint-improving-web-browser-security-with-a-steem-like-blockchain-20160805t163023321z
categoryblockchain
json_metadata"{"users": ["recursive"], "tags": ["blockchain"]}"
created2016-08-05 16:30:24
last_update2016-08-05 16:32:27
depth3
children0
net_rshares1,319,764,775
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length86
author_reputation1,183,949,922,229
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@feeltheblade ·
properties (23)
post_id448,170
authorfeeltheblade
permlinkimproving-web-browser-security-with-a-steem-like-blockchain
categoryblockchain
json_metadata{}
created2016-08-04 17:08:39
last_update2016-08-04 17:08:39
depth1
children0
net_rshares342,470,442
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length44
author_reputation-599,484,250,318
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (42)
@anonymint ·
$0.03
I [elaborated on why](https://steemit.com/steem/@pharesim/bounty-for-completion-of-native-javascript-steem-signer#@anonymint/re-williambanks-re-williambanks-re-pharesim-bounty-for-completion-of-native-javascript-steem-signer-20160804t115927518z) the above blog may be very important to Steem(it).
👍  
properties (23)
post_id456,610
authoranonymint
permlinkre-anonymint-improving-web-browser-security-with-a-steem-like-blockchain-20160805t040917743z
categoryblockchain
json_metadata"{"links": ["https://steemit.com/steem/@pharesim/bounty-for-completion-of-native-javascript-steem-signer#@anonymint/re-williambanks-re-williambanks-re-pharesim-bounty-for-completion-of-native-javascript-steem-signer-20160804t115927518z"], "tags": ["blockchain"]}"
created2016-08-05 04:09:18
last_update2016-08-05 04:09:18
depth1
children2
net_rshares26,755,385,653
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value0.026 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length296
author_reputation28,256,027,925,444
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@anonymint ·
My blog post is a hypothetical proposed solution to [this](https://steemit.com/steem/@karnal/hackmoar-hindering-attackers-coming-and-kidnapping-my-outrageously-armored-resources):

> The wallet code which underpins the whole security of your account is sent to you by the server(s) belonging to steemit.

> If the server has been compromised, an attacker can modify the code said server is sending to your browser.
properties (22)
post_id480,823
authoranonymint
permlinkre-anonymint-re-anonymint-improving-web-browser-security-with-a-steem-like-blockchain-20160806t182702445z
categoryblockchain
json_metadata"{"links": ["https://steemit.com/steem/@karnal/hackmoar-hindering-attackers-coming-and-kidnapping-my-outrageously-armored-resources"], "tags": ["blockchain"]}"
created2016-08-06 18:27:00
last_update2016-08-06 18:27:00
depth2
children1
net_rshares0
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length414
author_reputation28,256,027,925,444
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@anonymint ·
And a follow-up to [a challenge](https://steemit.com/killer-app/@jimmco/what-can-be-the-next-blockchain-killer-app#@jimmco/re-anonymint-re-jimmco-what-can-be-the-next-blockchain-killer-app-20160806t194547790z) to my proposal:

>> even distributed data can be compromised when keys are stolen. In general my impression is that we are still moving security rather than solving security

> The [tree (chain) of trust](https://steemit.com/blockchain/@dan/steemit-releases-groundbreaking-account-recovery-solution#@anonymint/re-dan-steemit-releases-groundbreaking-account-recovery-solution-20160806t180656742z) can probably solve that.
properties (22)
post_id481,938
authoranonymint
permlinkre-anonymint-re-anonymint-re-anonymint-improving-web-browser-security-with-a-steem-like-blockchain-20160806t195614590z
categoryblockchain
json_metadata"{"links": ["https://steemit.com/killer-app/@jimmco/what-can-be-the-next-blockchain-killer-app#@jimmco/re-anonymint-re-jimmco-what-can-be-the-next-blockchain-killer-app-20160806t194547790z"], "tags": ["blockchain"]}"
created2016-08-06 19:56:12
last_update2016-08-06 19:56:12
depth3
children0
net_rshares0
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length630
author_reputation28,256,027,925,444
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@wroman0207 ·
@anonymint Is there any recommendations you have for client side protection? I'm talking besides the normal stuff; OS updates, patches, AV, client side FW, ect.
👍  
properties (23)
post_id457,159
authorwroman0207
permlinkre-anonymint-improving-web-browser-security-with-a-steem-like-blockchain-20160805t051409115z
categoryblockchain
json_metadata"{"users": ["anonymint"], "tags": ["blockchain"]}"
created2016-08-05 05:14:06
last_update2016-08-05 05:14:06
depth1
children1
net_rshares968,502,964
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length160
author_reputation683,037,337,302
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@anonymint · (edited)
Well without getting into general client-side precautions a user might do, and in addition to the points I've already made, I have another idea for what Steemit could do. That is make all interactions with the "owner" or master private key password take place on a different domain so Content Security Policy and the browser sandbox can protect those interactions against cracks due to user-generated content which [@dan mentions](https://bitcointalk.org/index.php?topic=1567519.msg15840117#msg15840117) as an additional current vulnerability of Steemit compared to Blockchain.info.

Edit: this was [previously suggested](https://steemit.com/steem/@karnal/hackmoar-hindering-attackers-coming-and-kidnapping-my-outrageously-armored-resources) as a "standalone app".
properties (22)
post_id480,361
authoranonymint
permlinkre-wroman0207-re-anonymint-improving-web-browser-security-with-a-steem-like-blockchain-20160806t174441492z
categoryblockchain
json_metadata"{"links": ["https://bitcointalk.org/index.php?topic=1567519.msg15840117#msg15840117"], "tags": ["blockchain"]}"
created2016-08-06 17:44:39
last_update2016-08-06 18:29:54
depth2
children0
net_rshares0
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length764
author_reputation28,256,027,925,444
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@meteor78 ·
👍nice post @anonymint
properties (22)
post_id460,842
authormeteor78
permlinkre-anonymint-improving-web-browser-security-with-a-steem-like-blockchain-20160805t112932611z
categoryblockchain
json_metadata"{"users": ["anonymint"], "tags": ["blockchain"]}"
created2016-08-05 11:29:36
last_update2016-08-05 11:29:36
depth1
children0
net_rshares0
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length21
author_reputation184,312,824,942
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@djdma ·
great job!
properties (22)
post_id462,449
authordjdma
permlinkre-anonymint-improving-web-browser-security-with-a-steem-like-blockchain-20160805t132540809z
categoryblockchain
json_metadata"{"tags": ["blockchain"]}"
created2016-08-05 13:25:42
last_update2016-08-05 13:25:42
depth1
children0
net_rshares0
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length10
author_reputation5,813,590,592
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@paco ·
I feel safer after reading all this. Thx
properties (22)
post_id463,303
authorpaco
permlinkre-anonymint-improving-web-browser-security-with-a-steem-like-blockchain-20160805t141804367z
categoryblockchain
json_metadata"{"tags": ["blockchain"]}"
created2016-08-05 14:18:03
last_update2016-08-05 14:18:03
depth1
children0
net_rshares0
last_payout2016-09-04 14:23:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length40
author_reputation19,349,362,753,909
root_title"Improving web browser security with a Steem-like blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000