SlideShare a Scribd company logo
Introducing Cloakcast

Steve Phillips @ SB Hackerspace's
      WebTech Wednesday
          (hosted by Eucalyptus)

             2012.07.25
Agenda


● Cloakcast
  ○ What it is
  ○ How it works
  ○ Which problem(s) it solves


● Go
  ○ What it is
  ○ Why I used Go to build Cloakcast
  ○ The codez
Cloakcast
What is Cloakcast? Why use it?
Cloakcast is a suite of tools for chatting
encrypted-ly.

Using (a soon-to-be-released version of) Cloakcast means
that a malicious, totalitarian third party can't tell...

● Who you're communicating with
● What you're saying to them, nor
● When you're communicating <-- the unique part

...even if they're sniffing the traffic of whoever you're talking
to. In a future iteration, they may not even be able to tell
you're using Cloakcast at all.
Who cares if They know when I'm
chatting, and with whom?
● Trivial to correlate web traffic with chat
  traffic, encrypted or not
   ○ Creepy!
● With no encryption over GTalk...
   ○ I visit URL gov't considers suspicious (e.g.
     Wikileaks)
   ○ I send URL to $friend over GTalk
   ○ $friend visits URL
● With Pidgin + OTR over GTalk...
   ○   I visit URL gov't considers suspicious
   ○   I send URL to $friend over GTalk but it's encrypted
   ○   $friend visits URL
   ○   ...still pretty damn obvious who's talking with who
       about what! Cloakcast solves this.
How does/will Cloakcast work?
1. Client Sending       2. Server                         3. Client Receiving
● Original text (from   ● Decrypts outer-                  ● Decrypts outer-most
  user, or random         most layer                         layer (from Server)
  garbage/decoy)        ● Re-encrypts with                 ● Decrypts inner layer
● Encrypts using          recipient's PGP                    (encrypted by
  recipient's PGP key     key                                original sender)
● Encrypts using                                           ● Original text
  Server's PGP key       Cloakcast Server



                         Uniqueness: Client sends
                         message to Server once per
                         second. If the user types a
                         message that second, that's
                         what gets encrypted and
               My        sent. If the user doesn't type    Your
                         anything, a "garbage",
               Client    decoy message gets sent          Client
                         instead.
"Which connected user are you
chatting with?"
● ...only it's better than this
● I've been talking about this like it's a
  conversation happening in real-time
● It doesn't have to be
● Messages stay in a user's inbox until read
  ○ [EDIT: this will likely change in an upcoming version]
● Malicious parties only see data encrypted
  with the Server's key or recipient's key
  ○ ...assuming you're using an uncompromised server,
      in which case they know who's chatting, but not
      when nor what about
Chat Demo
Cloakcast Release Schedule
● Conceived, started July 9
● v0.1
  ○ Finished July 15
  ○ Basic PGP-encrypted chatting in terminal
● v0.2
  ○ Expected out in late July or August
  ○ WebSocket chat in browser
● v0.3
  ○ Connect through Tor?
     ■ Cloakcast and Tor don't compose
       super nicely due to the 1-second
       pulse...
Future Feature Ideas
● Multi-server support          ● Public key swapping within
  ○ No server sees entire         Cloakcast?
      conversation              ● Use OTR (instead of
● Request data from server at     PGP/GPG)?
  adjustable rate                 ○ Maybe use mpOTR?
● Use HTTPS on port 443         ● Multiple concurrent 2-person
  ○ Extra encryption layer        chats
  ○ Hides destination url       ● Group chat + PGP sucks
● Can your ISP even tell          ○ O(n^2) keys :-
  you're using Cloakcast?       ● Platform???
  ○ Maybe, using DPI,             ○ Distributed system :-)
      maybe not (HTTPS)           ○ Compute, scrape, etc
● Tor tunneling                 ● Legit auth
  ○ Cloakcast will help           ○ "Client: prove you can
      against timing attacks          decrypt $this to check
                                      'your' inbox"
Go
What is Go?
● Programming language open sourced by
  Google in 2009
● Reached stable v1.0 in late March 2012
● Qualities
  ○   Fast and Concurrent
  ○   Compiled
  ○   Statically typed (in a good way!)
  ○   Simple and Powerful
  ○   Avoids typical trade-offs
      ■ Fast, static typing, painful v. Slow, dynamic, fun
● My favorite programming language
  ○ That's right: Python is #2
Cloakcast Code Samples
       (Emacs time...)
SOON: Run Cloakcast on your
      Android device




Screenshot taken 2012.07.03 (3 weeks ago)
Go Resources
● Start here: http://tour.golang.org/
● Articles: http://golang.org/doc/#articles
  ○ Also see http://blog.golang.org/
● Then read http://golang.org/doc/effective_go.html
● My Go snippets (in go/ and go-r60/ dirs):
   https://github.com/sbhackerspace/sbhx-snippets/
● More at Go homepage: http://golang.org/

More Related Content

PDF
talk-ta3m-crypto-tools-workshop
PDF
Security in PHP Applications: An absolute must!
PPTX
PPTX
Tails os and Tor Proxies
PDF
Intro to blockchain - Dapper Dev Bootcamp
PDF
Girl Develop It - Intro To Blockchain And Cryptocurrencies
PDF
FLISOL 2015 - Criptografia é importante! Aprenda meios simples de proteger ar...
PPTX
Public key encryption presentation
talk-ta3m-crypto-tools-workshop
Security in PHP Applications: An absolute must!
Tails os and Tor Proxies
Intro to blockchain - Dapper Dev Bootcamp
Girl Develop It - Intro To Blockchain And Cryptocurrencies
FLISOL 2015 - Criptografia é importante! Aprenda meios simples de proteger ar...
Public key encryption presentation

What's hot (17)

PDF
Trusted Types and the end of DOM XSS
PPTX
What is Cryptocurrency Mining?
PDF
Trusted Types @ W3C TPAC 2018
PPTX
Cryptography
PDF
REST project brief - typical setup for teams
PDF
How Encryption for Strong Security Works
PPTX
Euklid (1)
PPTX
Seyfullah Kilic - Hacking Cryptocurrency Miners with OSINT Techniques
PDF
Secure Token Storage
PDF
BSides Rochester 2018: Chaim Sanders: How the Cookie Crumbles: Modern HTTP St...
ODP
Dapps for Web Developers Aberdeen Techmeetup
PPT
Encryption is for everyone!
PDF
May The Data Stay with U! Network Data Exfiltration Techniques - Brucon 2017.
PDF
Bitcoin explained. Talk at Vaughan Public Library
PPTX
Cryptography in networks
PDF
Sustainability of a multi blockchain ecosystem
PPTX
Deepweb darknet mansukhani
Trusted Types and the end of DOM XSS
What is Cryptocurrency Mining?
Trusted Types @ W3C TPAC 2018
Cryptography
REST project brief - typical setup for teams
How Encryption for Strong Security Works
Euklid (1)
Seyfullah Kilic - Hacking Cryptocurrency Miners with OSINT Techniques
Secure Token Storage
BSides Rochester 2018: Chaim Sanders: How the Cookie Crumbles: Modern HTTP St...
Dapps for Web Developers Aberdeen Techmeetup
Encryption is for everyone!
May The Data Stay with U! Network Data Exfiltration Techniques - Brucon 2017.
Bitcoin explained. Talk at Vaughan Public Library
Cryptography in networks
Sustainability of a multi blockchain ecosystem
Deepweb darknet mansukhani
Ad

Similar to Introducing Cloakcast (20)

PDF
5.3. Undercover communications
PDF
Introduction to WebSockets
PPTX
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
PDF
Computer network (10)
PDF
how to develop a serverless in-app notification system - beSharp serverlessda...
PDF
DevCon 5 (July 2013) - WebSockets
PPT
Lecture 6 web security
PPTX
python programming
PPTX
BitChat_Seminar_Presentation.pptx sjsjks
PDF
Hacking (with) WebSockets
PDF
Introducing MQTT
PDF
Defcon 23 - David Huerta - alice and bob are really confused
PDF
Matrix: The future of communication is decentralised, secure and interoperable
PPTX
WebSocket protocol
PDF
Messaging for the Internet of Awesome Things
PDF
Websocket 101 in Python
PDF
TLS/SSL Protocol Design 201006
PDF
TLS/SSL Protocol Design
PPTX
I2P (Invisible Internet Project)
ODP
Skype and icq referat final - copy
5.3. Undercover communications
Introduction to WebSockets
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
Computer network (10)
how to develop a serverless in-app notification system - beSharp serverlessda...
DevCon 5 (July 2013) - WebSockets
Lecture 6 web security
python programming
BitChat_Seminar_Presentation.pptx sjsjks
Hacking (with) WebSockets
Introducing MQTT
Defcon 23 - David Huerta - alice and bob are really confused
Matrix: The future of communication is decentralised, secure and interoperable
WebSocket protocol
Messaging for the Internet of Awesome Things
Websocket 101 in Python
TLS/SSL Protocol Design 201006
TLS/SSL Protocol Design
I2P (Invisible Internet Project)
Skype and icq referat final - copy
Ad

Introducing Cloakcast

  • 1. Introducing Cloakcast Steve Phillips @ SB Hackerspace's WebTech Wednesday (hosted by Eucalyptus) 2012.07.25
  • 2. Agenda ● Cloakcast ○ What it is ○ How it works ○ Which problem(s) it solves ● Go ○ What it is ○ Why I used Go to build Cloakcast ○ The codez
  • 4. What is Cloakcast? Why use it? Cloakcast is a suite of tools for chatting encrypted-ly. Using (a soon-to-be-released version of) Cloakcast means that a malicious, totalitarian third party can't tell... ● Who you're communicating with ● What you're saying to them, nor ● When you're communicating <-- the unique part ...even if they're sniffing the traffic of whoever you're talking to. In a future iteration, they may not even be able to tell you're using Cloakcast at all.
  • 5. Who cares if They know when I'm chatting, and with whom? ● Trivial to correlate web traffic with chat traffic, encrypted or not ○ Creepy! ● With no encryption over GTalk... ○ I visit URL gov't considers suspicious (e.g. Wikileaks) ○ I send URL to $friend over GTalk ○ $friend visits URL ● With Pidgin + OTR over GTalk... ○ I visit URL gov't considers suspicious ○ I send URL to $friend over GTalk but it's encrypted ○ $friend visits URL ○ ...still pretty damn obvious who's talking with who about what! Cloakcast solves this.
  • 6. How does/will Cloakcast work? 1. Client Sending 2. Server 3. Client Receiving ● Original text (from ● Decrypts outer- ● Decrypts outer-most user, or random most layer layer (from Server) garbage/decoy) ● Re-encrypts with ● Decrypts inner layer ● Encrypts using recipient's PGP (encrypted by recipient's PGP key key original sender) ● Encrypts using ● Original text Server's PGP key Cloakcast Server Uniqueness: Client sends message to Server once per second. If the user types a message that second, that's what gets encrypted and My sent. If the user doesn't type Your anything, a "garbage", Client decoy message gets sent Client instead.
  • 7. "Which connected user are you chatting with?" ● ...only it's better than this ● I've been talking about this like it's a conversation happening in real-time ● It doesn't have to be ● Messages stay in a user's inbox until read ○ [EDIT: this will likely change in an upcoming version] ● Malicious parties only see data encrypted with the Server's key or recipient's key ○ ...assuming you're using an uncompromised server, in which case they know who's chatting, but not when nor what about
  • 9. Cloakcast Release Schedule ● Conceived, started July 9 ● v0.1 ○ Finished July 15 ○ Basic PGP-encrypted chatting in terminal ● v0.2 ○ Expected out in late July or August ○ WebSocket chat in browser ● v0.3 ○ Connect through Tor? ■ Cloakcast and Tor don't compose super nicely due to the 1-second pulse...
  • 10. Future Feature Ideas ● Multi-server support ● Public key swapping within ○ No server sees entire Cloakcast? conversation ● Use OTR (instead of ● Request data from server at PGP/GPG)? adjustable rate ○ Maybe use mpOTR? ● Use HTTPS on port 443 ● Multiple concurrent 2-person ○ Extra encryption layer chats ○ Hides destination url ● Group chat + PGP sucks ● Can your ISP even tell ○ O(n^2) keys :- you're using Cloakcast? ● Platform??? ○ Maybe, using DPI, ○ Distributed system :-) maybe not (HTTPS) ○ Compute, scrape, etc ● Tor tunneling ● Legit auth ○ Cloakcast will help ○ "Client: prove you can against timing attacks decrypt $this to check 'your' inbox"
  • 11. Go
  • 12. What is Go? ● Programming language open sourced by Google in 2009 ● Reached stable v1.0 in late March 2012 ● Qualities ○ Fast and Concurrent ○ Compiled ○ Statically typed (in a good way!) ○ Simple and Powerful ○ Avoids typical trade-offs ■ Fast, static typing, painful v. Slow, dynamic, fun ● My favorite programming language ○ That's right: Python is #2
  • 13. Cloakcast Code Samples (Emacs time...)
  • 14. SOON: Run Cloakcast on your Android device Screenshot taken 2012.07.03 (3 weeks ago)
  • 15. Go Resources ● Start here: http://tour.golang.org/ ● Articles: http://golang.org/doc/#articles ○ Also see http://blog.golang.org/ ● Then read http://golang.org/doc/effective_go.html ● My Go snippets (in go/ and go-r60/ dirs): https://github.com/sbhackerspace/sbhx-snippets/ ● More at Go homepage: http://golang.org/