info page 2 - Dave's Blog

Search
My timeline on Mastodon

Kartlytics (by Deirdré Straughan)

2013 Aug 9, 7:53


Kartlytics (by Deirdré Straughan)

PermalinkCommentshumor technical Mario-kart video-game manta map-reduce cloud-computing

Pixel Perfect Timing Attacks with HTML5 - Context » Information Security

2013 Aug 7, 8:25PermalinkCommentssecurity html html5 svg javascript requestAnimationFrame iframe

LED Tetris Tie V2 (by Bill P)

2013 Jul 23, 1:47


LED Tetris Tie V2 (by Bill P)

PermalinkCommentsHumor tie tetris

How I Met Your Mother - Ted’s Kids Like You’ve Never...

2013 Jul 23, 7:45


How I Met Your Mother - Ted’s Kids Like You’ve Never Seen Them (by howimetyourmother)

PermalinkCommentshumor tv himym

laughingsquid: Testing People’s Reaction Times With a Ruler in...

2013 Jul 5, 3:05


laughingsquid:

Testing People’s Reaction Times With a Ruler in Super Slow Motion

PermalinkCommentsbrain science video speed time humor

Number 1 and Benford’s Law - Numberphile (by...

2013 Jun 25, 4:40


Number 1 and Benford’s Law - Numberphile (by numberphile)

I’d heard of Benford’s Law before but it sounded totally counter intuitive to me. This video does a good job explaining why one shows up as the leading digit in sets of random numbers that span large ranges.

PermalinkCommentsmath video benfords-law

In Depth Review: New NSA Documents Expose How Americans Can Be Spied on Without A Warrant

2013 Jun 21, 10:43

What It All Means: All Your Communications are Belong to U.S. In sum, if you use encryption they’ll keep your data forever. If you use Tor, they’ll keep your data for at least five years. If an American talks with someone outside the US, they’ll keep your data for five years. If you’re talking to your attorney, you don’t have any sense of privacy. And the NSA can hand over you information to the FBI for evidence of any crime, not just terrorism. All without a warrant or even a specific FISA order.

Not sure if this is saying all Tor data is collected or saying if someone uses Tor then start collecting that someone’s communication.

PermalinkCommentstechnical legal tor nsa eff spying security privacy

Audi Piloted Driving at CES 2013 (by AudiofAmerica)

2013 Jun 21, 9:30


Audi Piloted Driving at CES 2013 (by AudiofAmerica)

PermalinkCommentscar video self-driving

Paola Antonelli: Why I brought Pac-Man to MoMA (by...

2013 May 28, 4:34


Paola Antonelli: Why I brought Pac-Man to MoMA (by TEDtalksDirector)

PermalinkCommentsvideo-game art humor ted video

SIGGRAPH 2013 : Technical Papers Preview Trailer (by...

2013 May 24, 4:46


SIGGRAPH 2013 : Technical Papers Preview Trailer (by ACMSIGGRAPH)

PermalinkCommentstechnical video cgi

laughingsquid: Arrested Development Season 4 Trailer Brings...

2013 May 13, 2:47


laughingsquid:

Arrested Development Season 4 Trailer Brings Back the Dysfunctional Bluth Family

Come on!

PermalinkCommentshumor trailer arrested-development awesome

robhuebel: Axe Cop coming this summer!   Nick Offerman, Tyler...

2013 May 13, 2:26


robhuebel:

Axe Cop coming this summer!  

Nick Offerman, Tyler the Creator, Me (Rob Huebel), Giancarlo Esposito and Vincent Kartheiser.  

PermalinkCommentsaxe-cop humor video tv

laughingsquid: Two-Year-Old Picks the Lock to His Sister’s Room...

2013 Mar 28, 3:30


laughingsquid:

Two-Year-Old Picks the Lock to His Sister’s Room and Steals Her Toys

PermalinkCommentshumor child video

Zelda Starring Zelda (by Kenna W) Original NES Legend of Zelda...

2013 Mar 18, 2:17


Zelda Starring Zelda (by Kenna W)

Original NES Legend of Zelda ROM modified to swap Zelda and Link: play as Zelda saving Link.

PermalinkCommentsNintendo rom hack programming Zelda legend-of-zelda

Jeopardy! - The Exciting (And Amusing) Teen Tournament...

2013 Feb 21, 4:02


Jeopardy! - The Exciting (And Amusing) Teen Tournament Conclusion (Feb. 12, 2013) (by thechadmosher)

Leonard on Teen Jeopardy was the best.

PermalinkCommentshumor tv jeopardy

CodeHackerz (by campusmoviefest)

2013 Feb 20, 2:50


CodeHackerz (by campusmoviefest)

PermalinkCommentshumor video 1337 hackerz

laughingsquid: The Truth About Phones on Airplanes

2013 Jan 7, 11:57


laughingsquid:

The Truth About Phones on Airplanes

PermalinkComments

laughingsquid: Blind Man Shows How Blind People Use Instagram

2013 Jan 4, 5:34


laughingsquid:

Blind Man Shows How Blind People Use Instagram

PermalinkComments

John Hodgman’s Apocalypse Survival 101 (by thnkrtv)

2012 Dec 17, 9:11


John Hodgman’s Apocalypse Survival 101 (by thnkrtv)

PermalinkCommentshumor video john-hodgman apocalypse

Stripe CTF - Level 8

2012 Dec 7, 2:07
Level 8 of the Stripe CTF is a password server that returns success: true if and only if the password provided matches the password stored directly via a RESTful API and optionally indirectly via a callback URI. The solution is side channel attack like a timing attack but with ports instead of time.

(I found this in my drafts folder and had intended to post a while ago.)

Code

    def nextServerCallback(self, data):
parsed_data = json.loads(data)
# Chunk was wrong!
if not parsed_data['success']:
# Defend against timing attacks
remaining_time = self.expectedRemainingTime()
self.log_info('Going to wait %s seconds before responding' %
remaining_time)
reactor.callLater(remaining_time, self.sendResult, False)
return

self.checkNext()

Issue

The password server breaks the target password into four pieces and stores each on a different server. When a password request is sent to the main server it makes requests to the sub-servers for each part of the password request. It does this in series and if any part fails, then it stops midway through. Password requests may also be made with corresponding URI callbacks and after the server decides on the password makes an HTTP request on the provided URI callbacks saying if the password was success: true or false.
A timing attack looks at how long it took for a password to be rejected and longer times could mean a longer prefix of the password was correct allowing for a directed brute force attack. Timing attacks are prevented in this case by code on the password server that attempts to wait the same amount of time, even if the first sub-server responds with false. However, the server uses sequential outgoing port numbers shared between the requests to the sub-servers and the callback URIs. Accordingly, we can examine the port numbers on our callback URIs to direct a brute force attack.
If the password provided is totally incorrect then the password server will contact one sub-server and then your callback URI. So if you see the remote server's port number go up by two when requesting your callback URI, you know the password is totally incorrect. If by three then you know the first fourth of the password is correct and the rest is incorrect. If by four then two fourths of the password is correct. If by five then four sub-servers were contacted so you need to rely on the actual content of the callback URI request of 'success: true' or 'false' since you can't tell from the port change if the password was totally correct or not.
The trick in the real world is false positives. The port numbers are sequential over the system, so if the password server is the only thing making outgoing requests then its port numbers will also be sequential, however other things on the system can interrupt this. This means that the password server could contact three sub-servers and normally you'd see the port number increase by four, but really it could increase by four or more because of other things running on the system. To counteract this I ran in cycles: brute forcing the first fourth of the password and removing any entry that gets a two port increase and keeping all others. Eventually I could remove all but the correct first fourth of the password. And so on for the next parts of the password.
I wrote my app to brute force this in Python. This was my first time writing Python code so it is not pretty.
PermalinkCommentsbrute-force password python side-channel technical web
Older EntriesNewer Entries Creative Commons License Some rights reserved.