{"guid":"0T8GTXjwMVJLM_n5VEuE0A","title":"Finding the Weak Crypto Needle in a Byte Haystack","subtitle":"Automatic detection of key-reuse vulnerabilities","slug":"31c3_-_6144_-_en_-_saal_g_-_201412281645_-_finding_the_weak_crypto_needle_in_a_byte_haystack_-_ben_h","link":"http://events.ccc.de/congress/2014/Fahrplan/events/6144.html","description":"Using the same stream cipher key twice is known to be a Very Bad Idea, but keystream-resuse vulnerabilities are still very much a thing of the present - both in legitimate software and in the malware landscape. We describe a heuristic algorithm which can detect vulnerabilities of this kind. We explain the inner workings of the algorithm and demonstrate a proof-of-concept attack on sevreral examples of vulnerable data, including files encrypted by the DirCrypt malware and encrypted traffic generated by malware such as variants of Zeus and Ramnit.","original_language":"eng","persons":["Ben H."],"view_count":1557,"promoted":false,"date":"2014-12-28T16:45:00.000+01:00","release_date":"2014-12-29T01:00:00.000+01:00","updated_at":"2025-01-06T20:11:15.413+01:00","tags":["Security \u0026 Hacking"],"length":1951,"duration":1951,"thumb_url":"https://static.media.ccc.de/media/congress/2014/6144-hd.jpg","poster_url":"https://static.media.ccc.de/media/congress/2014/6144-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/congress/2014/0T8GTXjwMVJLM_n5VEuE0A-timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/congress/2014/0T8GTXjwMVJLM_n5VEuE0A-thumbnails.vtt","frontend_link":"https://media.ccc.de/v/31c3_-_6144_-_en_-_saal_g_-_201412281645_-_finding_the_weak_crypto_needle_in_a_byte_haystack_-_ben_h","url":"https://api.media.ccc.de/public/events/0T8GTXjwMVJLM_n5VEuE0A","conference_title":"31C3: a new dawn","conference_url":"https://api.media.ccc.de/public/conferences/31c3","related":[{"event_id":96,"event_guid":"import-a23ebcaf68fd4692d5","weight":1},{"event_id":790,"event_guid":"import-c429172db8cd508503","weight":1},{"event_id":1542,"event_guid":"import-052f3eb3e03ca7685e","weight":1},{"event_id":1933,"event_guid":"V2t_6OflOdJGK8g9sOcJow","weight":1},{"event_id":2153,"event_guid":"HLDDEFxCxCrQryx8fEacZw","weight":1},{"event_id":2165,"event_guid":"hnRe8t6JYI_8PYnFh-dsug","weight":1},{"event_id":2169,"event_guid":"Fj7J1P7FKCiWEl7lIaDaXg","weight":1},{"event_id":2170,"event_guid":"DvpNPWPGVgSqGcOI1WK45g","weight":1},{"event_id":2176,"event_guid":"psS7-V3-VqYDuiKCr5PmWg","weight":1},{"event_id":2178,"event_guid":"7G4FQIXg2eb7D6F_jNwuxA","weight":2},{"event_id":2186,"event_guid":"c3efec0b-cfb1-4e59-88fd-f519dd31d9a6","weight":1},{"event_id":2187,"event_guid":"JhCUm-jQqCMx_jDfrzH24Q","weight":1},{"event_id":2188,"event_guid":"oBQMMNfX5t-5TBIk3z6pOg","weight":1},{"event_id":2190,"event_guid":"UqfjLnUNKqc6-WzUjP6YQg","weight":1},{"event_id":2196,"event_guid":"1J0sEDUwTplMXgNU2Q7hrw","weight":1},{"event_id":2197,"event_guid":"qRQclNxyOV7ZYPwbrXrw1Q","weight":2},{"event_id":2198,"event_guid":"1NE5joYD0o-gaf5SqL-1Nw","weight":1},{"event_id":2199,"event_guid":"MBpSOQzfPD4ky0hqL6B-hg","weight":1},{"event_id":2207,"event_guid":"lEFQRUU823FUOPqKG85vWg","weight":1},{"event_id":2216,"event_guid":"A8xVpIjX1oKQOQcWMt_49Q","weight":1},{"event_id":2221,"event_guid":"defd3b01-c39d-433f-b3c4-dbea1ea2fe00","weight":1},{"event_id":2229,"event_guid":"P8L4krxqjXP7zHMZToU6CQ","weight":1},{"event_id":2240,"event_guid":"iWU6RrYVPk7Q-fLuBE-LoQ","weight":1},{"event_id":2253,"event_guid":"uMGv2XJJqkQodKm0_Mtr_A","weight":1},{"event_id":2268,"event_guid":"87b8f1ba-1f05-46c2-93ac-b575bbc9fb4f","weight":3},{"event_id":2269,"event_guid":"C4w30id6HpMnzKM2xcrT4g","weight":1},{"event_id":2273,"event_guid":"38ea922b-5b2d-4290-8c79-da0c891edd7a","weight":1},{"event_id":2291,"event_guid":"2f68e356-6c3f-4034-9640-c06d717ed96b","weight":2},{"event_id":2400,"event_guid":"4a9bf7495fd14b4e4ac986bc0a27106b","weight":1},{"event_id":2502,"event_guid":"a707951f-7f9c-4c8e-8f4f-b837f3581b7b","weight":1},{"event_id":2796,"event_guid":"3c066b63-c764-4571-bc3b-eb8dfbb5a6d9","weight":1},{"event_id":2837,"event_guid":"9f2e9ff0-1555-470b-8743-9f07f54e9097","weight":1},{"event_id":2862,"event_guid":"2f4cd1ef-dd90-4145-a734-141e5c081940","weight":1},{"event_id":2923,"event_guid":"ba780105-8cc1-4e6e-8552-5e3bc150b9ff","weight":1},{"event_id":2957,"event_guid":"27f4fab0-b7ad-11e5-9877-fb7fcf035cf2","weight":1},{"event_id":3070,"event_guid":"9a153e36-2653-4927-a47b-78351a0f79d7","weight":1},{"event_id":3675,"event_guid":"090675f6-f86e-4082-886b-e13c9c837ecb","weight":1},{"event_id":3702,"event_guid":"5fb5e620-383a-4679-b37a-beef20bcd4fe","weight":1},{"event_id":3719,"event_guid":"d851c029-9f83-41af-befd-a54209453d41","weight":1},{"event_id":3811,"event_guid":"68a745a5-f6b7-4c12-adf7-4f7c815f30fe","weight":1},{"event_id":3898,"event_guid":"8b54f7fa-012e-4a13-a0cf-a07408e767bf","weight":1},{"event_id":4883,"event_guid":"ea27b2dc-d558-4fab-8406-a9db30930f8f","weight":1},{"event_id":5963,"event_guid":"a82b651c-90ab-5427-96f5-41907efaab08","weight":1}],"recordings":[{"length":1951,"mime_type":"video/webm","language":"eng","filename":"31c3-6144-en-Finding_the_Weak_Crypto_Needle_in_a_Byte_Haystack_webm-sd.webm","state":"downloaded","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2016-02-03T14:07:16.425+01:00","label":"eng 576p","size":100,"recording_url":"https://cdn.media.ccc.de/congress/2014/webm-sd/31c3-6144-en-Finding_the_Weak_Crypto_Needle_in_a_Byte_Haystack_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/5309","event_url":"https://api.media.ccc.de/public/events/0T8GTXjwMVJLM_n5VEuE0A","conference_url":"https://api.media.ccc.de/public/conferences/31c3"},{"length":1951,"mime_type":"video/mp4","language":"eng","filename":"31c3-6144-en-Finding_the_Weak_Crypto_Needle_in_a_Byte_Haystack_sd.mp4","state":"downloaded","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2016-02-03T14:07:16.342+01:00","label":"eng 576p","size":109,"recording_url":"https://cdn.media.ccc.de/congress/2014/h264-sd/31c3-6144-en-Finding_the_Weak_Crypto_Needle_in_a_Byte_Haystack_sd.mp4","url":"https://api.media.ccc.de/public/recordings/5307","event_url":"https://api.media.ccc.de/public/events/0T8GTXjwMVJLM_n5VEuE0A","conference_url":"https://api.media.ccc.de/public/conferences/31c3"},{"length":1942,"mime_type":"audio/opus","language":"eng","filename":"31c3-6144-en-Finding_the_Weak_Crypto_Needle_in_a_Byte_Haystack_opus.opus","state":"downloaded","folder":"opus","high_quality":true,"width":null,"height":null,"updated_at":"2014-12-29T17:08:14.086+01:00","label":"eng","size":22,"recording_url":"https://cdn.media.ccc.de/congress/2014/opus/31c3-6144-en-Finding_the_Weak_Crypto_Needle_in_a_Byte_Haystack_opus.opus","url":"https://api.media.ccc.de/public/recordings/5306","event_url":"https://api.media.ccc.de/public/events/0T8GTXjwMVJLM_n5VEuE0A","conference_url":"https://api.media.ccc.de/public/conferences/31c3"},{"length":1951,"mime_type":"video/mp4","language":"eng","filename":"31c3-6144-en-Finding_the_Weak_Crypto_Needle_in_a_Byte_Haystack_hd.mp4","state":"downloaded","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2016-02-03T14:07:04.288+01:00","label":"eng 1080p","size":295,"recording_url":"https://cdn.media.ccc.de/congress/2014/h264-hd/31c3-6144-en-Finding_the_Weak_Crypto_Needle_in_a_Byte_Haystack_hd.mp4","url":"https://api.media.ccc.de/public/recordings/5210","event_url":"https://api.media.ccc.de/public/events/0T8GTXjwMVJLM_n5VEuE0A","conference_url":"https://api.media.ccc.de/public/conferences/31c3"},{"length":1951,"mime_type":"video/webm","language":"eng","filename":"31c3-6144-en-Finding_the_Weak_Crypto_Needle_in_a_Byte_Haystack_webm-hd.webm","state":"downloaded","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2016-02-03T14:07:21.743+01:00","label":"eng 1080p","size":296,"recording_url":"https://cdn.media.ccc.de/congress/2014/webm-hd/31c3-6144-en-Finding_the_Weak_Crypto_Needle_in_a_Byte_Haystack_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/5374","event_url":"https://api.media.ccc.de/public/events/0T8GTXjwMVJLM_n5VEuE0A","conference_url":"https://api.media.ccc.de/public/conferences/31c3"},{"length":null,"mime_type":"application/x-subrip","language":"eng","filename":"DRAFT_31c3-6144-en-Finding_the_Weak_Crypto_Needle_in_a_Byte_Haystack.en_DRAFT.srt","state":"todo","folder":"","high_quality":true,"width":null,"height":null,"updated_at":"2022-01-15T19:13:08.639+01:00","label":"eng (todo)","size":null,"recording_url":"https://cdn.media.ccc.de/congress/2014/DRAFT_31c3-6144-en-Finding_the_Weak_Crypto_Needle_in_a_Byte_Haystack.en_DRAFT.srt","url":"https://api.media.ccc.de/public/recordings/50949","event_url":"https://api.media.ccc.de/public/events/0T8GTXjwMVJLM_n5VEuE0A","conference_url":"https://api.media.ccc.de/public/conferences/31c3"},{"length":null,"mime_type":"application/x-subrip","language":"fin","filename":"31c3-6144-en-Finding_the_Weak_Crypto_Needle_in_a_Byte_Haystack.fi.srt","state":"translated","folder":"","high_quality":true,"width":null,"height":null,"updated_at":"2023-09-02T02:39:21.766+02:00","label":"fin (translated)","size":null,"recording_url":"https://cdn.media.ccc.de/congress/2014/31c3-6144-en-Finding_the_Weak_Crypto_Needle_in_a_Byte_Haystack.fi.srt","url":"https://api.media.ccc.de/public/recordings/69677","event_url":"https://api.media.ccc.de/public/events/0T8GTXjwMVJLM_n5VEuE0A","conference_url":"https://api.media.ccc.de/public/conferences/31c3"},{"length":1942,"mime_type":"audio/mpeg","language":"eng","filename":"31c3-6144-en-Finding_the_Weak_Crypto_Needle_in_a_Byte_Haystack_mp3.mp3","state":"downloaded","folder":"mp3","high_quality":true,"width":null,"height":null,"updated_at":"2014-12-29T17:09:28.371+01:00","label":"eng","size":45,"recording_url":"https://cdn.media.ccc.de/congress/2014/mp3/31c3-6144-en-Finding_the_Weak_Crypto_Needle_in_a_Byte_Haystack_mp3.mp3","url":"https://api.media.ccc.de/public/recordings/5308","event_url":"https://api.media.ccc.de/public/events/0T8GTXjwMVJLM_n5VEuE0A","conference_url":"https://api.media.ccc.de/public/conferences/31c3"}]}