distributed_systems_MIT/lec18

lec18

dz / distributed_systems_MIT / lec18

Summary

Lecture 18: Fork consistency, certificate transparency

Node Tree

Nodes

certificate_transparency
content Certificate Transparency
children gossip, log_server, open_system, audit_system

mutually_distrusting_system
content mutually distrusting system
parents open_system

open_system
content Open System
children mutually_distrusting_system, talking_to_right_computer
parents certificate_transparency

talking_to_right_computer
content Are you talking to the right computer
children mostly_unsolveable
parents open_system

mostly_unsolveable
content Mostly Unsolveable
parents talking_to_right_computer

90s_web
content 90s web security
children mid_90s, pre_1995_web_security

pre_1995_web_security
content Pre-1995 web security
children man_in_the_middle_attack
parents 90s_web

man_in_the_middle_attack
content Man-in-the-middle attack
children intercepts_dns_packets
parents pre_1995_web_security

intercepts_dns_packets
content intercepts DNS packets
parents man_in_the_middle_attack

mid_90s
content Mid-90s security
children certificates
parents 90s_web

ssl_tls_https
content SSL, TLS, HTTPS
parents certificates

certificate_authority
content Certificate Authority
children now_hundreds_CA
parents certificates

certificates
content Certificates
children certificate_authority, ssl_tls_https
parents mid_90s

now_hundreds_CA
content Now: hundreds of CAs
children bogus_certs (problem)
parents certificate_authority

bogus_certs
content Bogus Certificates
children solutions_fixes, unclear_how_to_fix
parents now_hundreds_CA

unclear_how_to_fix
content Unclear how to fix
parents bogus_certs

solutions_fixes
content (possible) Solutions / Fixes
children db_valid_certs
parents bogus_certs

db_valid_certs
content Database of Valid Certificates
children certs_change, no_single_point_trust, still_unclear_distinguish_valid
parents solutions_fixes

still_unclear_distinguish_valid
content Still unclear how to distinguish valid
parents db_valid_certs

no_single_point_trust
content No single point of trust
parents db_valid_certs

certs_change
content Certs change
parents db_valid_certs

audit_system
content Audit System
children log_system, public_for_investigation
parents certificate_transparency

public_for_investigation
content Causes all info to be public for investigation
children bogus_still_possible
parents audit_system

bogus_still_possible
content Bogus Still possible
children not_preventative
parents public_for_investigation

not_preventative
content Not preventative
parents bogus_still_possible

log_system
content Log system
children depends_browsers_see_what_monitor_sees, no_forks, prevent_equivocation, untrusted, append_only
parents audit_system

append_only
content Append-only
parents log_system

no_forks
content No Forks
parents log_system

untrusted
content Untrusted
parents log_system

log_server
content Certificate Transparency Log Server / Service
children is_cert_in_log, monitor, periodically_talks_log_server, prove_things
parents certificate_transparency

is_cert_in_log
content Is cert in log?
children user_request
parents log_server

user_request
content User Request
parents is_cert_in_log

monitor
content Monitor
children depends_browsers_see_what_monitor_sees, knows_correct_certs, periodically_talks_log_server, revocation_system
parents log_server

knows_correct_certs
content Knows what corrects certs are
parents monitor

periodically_talks_log_server
content Periodically talks to log server
parents log_server, monitor

depends_browsers_see_what_monitor_sees
content Depends on browsers seeing what monitor sees
children log_contents
parents monitor, log_system

log_contents
content Log Contents
parents depends_browsers_see_what_monitor_sees

prevent_equivocation
content Prevent Equivocation
parents log_system

merkle_tree
content Merkle Tree
children cryptographic_hashes, prove_things, signed_tree_head, tree_of_hashes, trustworthy_log_summary, built_on_top_of_logs

built_on_top_of_logs
content Built on top of logs
parents merkle_tree

cryptographic_hashes
content Cryptographic hashes
parents merkle_tree

prove_things
content Forces log server to prove certain things
children log_consistency_proof, proof_of_inclusion
parents log_server, merkle_tree

proof_of_inclusion
content Proof of Inclusion
children returns_location_hash, tree_head_bogus
parents prove_things

returns_location_hash
content Log server returns location of hash, and the hash of the other element.
parents proof_of_inclusion

tree_of_hashes
content tree of hashes
children log_grows_tree_head_higher
parents merkle_tree

trustworthy_log_summary
content Trustworthy summary of logs
parents merkle_tree

log_grows_tree_head_higher
content Log grows, tree heads higher
parents tree_of_hashes

signed_tree_head
content Signed Tree Head (STH)
parents merkle_tree

revocation_system
content Revocation system for certificates
parents monitor

tree_head_bogus
content what if tree head is bogus?
children fork_attack
parents proof_of_inclusion

fork_attack
content Fork Attack
children equivocation, fork_consistency, gossip
parents tree_head_bogus

equivocation
content Equivocation
parents fork_attack

gossip
content gossip
children compare_tree_heads, drop_heads_into_pool_for_inspection (description)
parents fork_attack, certificate_transparency

compare_tree_heads
content Compare tree heads
parents gossip

drop_heads_into_pool_for_inspection
content Participants drop off heads into pool that is inspected for inconsistencies and divergent forks in logs
parents gossip

log_consistency_proof
content Log Consistency Proof
children log_consistency_proof_description (description)
parents prove_things

log_consistency_proof_description
content Input: 2 signed tree heads H1 and H2. Is H1's log a prefix of H2's log?
parents log_consistency_proof

stay_on_fork
content If the browser's been forked, it needs to stay on that fork
children track_failed_proofs
parents fork_consistency

fork_consistency
content Fork Consistency
children stay_on_fork (description)
parents fork_attack

track_failed_proofs
content Keep track of failed proofs
parents stay_on_fork