Commit Graph

145 Commits

Author SHA1 Message Date
Guillume DIDIER
646db42766 Start work on a Cache Slicing type that fallsback gracefully, for cache attack purposes.
It falls back to using the cache line virtual addr (without offset) as the hash when the hashing function is unknown.
Still work in progress to implment all the required functions, and then adpat any user to thechange in types.
2021-09-20 15:44:14 +02:00
Guillume DIDIER
8d78c70dae Rust Update, clean up MMappedMemory
Ensure the code compiles with the latest rust nightly version, and fixes some unsafety in MMappedMemory
2021-09-20 14:45:40 +02:00
Guillume DIDIER
7c563b1a71 The core per socket logic is not robust to padding
Added some fixmes
2021-07-19 10:53:46 +02:00
Guillume DIDIER
7696086e6d Rust nightly update - cache_utils 2021-06-10 11:19:00 +02:00
Guillume DIDIER
7a5cae722c New bersion of the side channels, with common implementation for F+R and F+F 2021-01-26 10:03:50 +01:00
Guillume DIDIER
dd290c9774 Update two thread cal to use turn locks 2021-01-08 10:49:59 +01:00
Guillume DIDIER
4a04fcaac6 Fix add assign implemntation bug 2021-01-05 11:43:20 +01:00
Guillume DIDIER
d90d572bc9 Update cache util for new nightly 2021-01-05 11:40:34 +01:00
Guillume DIDIER
b276f09d1e Figures 2021-01-05 11:39:49 +01:00
Guillaume DIDIER
10c1f4e5d5 Final fixes (CSV, p==0.0) 2020-12-02 16:30:28 +01:00
Guillume DIDIER
236b8bee48 Final update to AES Major update to covert channel benchmarking 2020-11-20 10:53:10 +01:00
Guillaume DIDIER
7efc28e253 Increase iteration count 2020-11-17 13:51:56 +01:00
Guillume DIDIER
5eab981eec Major refactor that allows proper core selection
- covert / side channel are currently back in a non functional state
- two thread calibration however qorks and gets full experimental results
2020-10-22 14:38:41 +02:00
GuillaumeDIDIER
f17ca91e82 Various dependency updates - should now compile again 2020-09-29 10:51:24 +02:00
GuillaumeDIDIER
0d6a3abed3 Safety docq and other clippy concerns 2020-09-22 17:09:46 +02:00
root
654b9b2cdb Cache utils updates 2020-09-22 14:27:52 +02:00
GuillaumeDIDIER
b458204f79 Fix function detection on i9-9900 2020-08-05 11:12:10 +02:00
GuillaumeDIDIER
f3220fdfa3 Python script fixes 2020-08-05 11:11:49 +02:00
Guillaume DIDIER
1ce54f5e59 Fix naming of stats file 2020-08-04 15:06:00 +02:00
GuillaumeDIDIER
b747c64d16 Analysis scripts 2020-08-04 14:34:45 +02:00
GuillaumeDIDIER
a2d494d610 Threshold computation & calibration enhancements 2020-08-04 14:34:18 +02:00
GuillaumeDIDIER
15907efb15 Reduce the number of iteration in optimised address calibration 2020-07-23 13:32:25 +02:00
GuillaumeDIDIER
9b96280e78 Fix the number of iteration for optimised address calibration 2020-07-23 10:11:47 +02:00
GuillaumeDIDIER
ebc304d55a Changes in order to make use of the new aoptimised address set in calibration
Change the set type to isize as it is a set of offsets
Change Calibrate two threads to make use of it
2020-07-21 11:27:46 +02:00
GuillaumeDIDIER
b815fd34ff Make use of core_per_cocket in complexe slice addressing 2020-07-21 09:38:55 +02:00
GuillaumeDIDIER
0867e8961e Detect correct number of physical core per socket 2020-07-20 13:44:12 +02:00
GuillaumeDIDIER
1d146fe544 Regroup options into a single parameters 2020-07-20 13:43:35 +02:00
GuillaumeDIDIER
0e0d5606bd Add a third function handling the linear hashing functions Im and Ker 2020-07-20 13:42:31 +02:00
GuillaumeDIDIER
dc0fe08dab Various fixes to the complex addressing module 2020-07-16 11:47:15 +02:00
GuillaumeDIDIER
6aa5784e22 Add test program for complex addressing image and basis 2020-07-16 11:46:41 +02:00
GuillaumeDIDIER
bec16025ec Update to the complex addressing support
Support Three groups of known functions
Support Computation of Image and antecedents for an Image basis(Kernel of the hash function also easily extractable)
2020-07-16 11:17:58 +02:00
GuillaumeDIDIER
bf3def8987 Clean up dead code 2020-07-16 11:15:46 +02:00
GuillaumeDIDIER
d8e79f1201 Change slice number type to u8 to avoid confusion 2020-07-15 10:16:26 +02:00
GuillaumeDIDIER
a4e617021d Add extra fence to ensure proper oredring in the same thread case 2020-07-15 10:15:19 +02:00
GuillaumeDIDIER
4db469ae0b Add hashbrown as a dependency to get hashmaps/sets in no_std context 2020-07-15 10:13:58 +02:00
GuillaumeDIDIER
f7c171b7bc Calibration on the full set of core pairs, reduce array size to compensate size increase 2020-07-09 13:36:27 +02:00
GuillaumeDIDIER
2323c69ead Make the 2T calibration also handle the same core case (with no helper thread) 2020-07-09 13:35:58 +02:00
GuillaumeDIDIER
daaca820fd Reformat, fix a bug due to confusing p and pointer in calibrate two thread and add relaod support 2020-07-07 15:07:55 +02:00
GuillaumeDIDIER
d47a7167ff Fix top level build 2020-07-06 09:59:01 +02:00
GuillaumeDIDIER
cbe2367019 Add warm-up, calibrate more core pairs, to supersed original calibration 2020-07-03 10:27:49 +02:00
GuillaumeDIDIER
77a40a24be Add two thread calibration 2020-07-02 15:40:30 +02:00
GuillaumeDIDIER
bd4028f521 Fix various warnings 2020-07-02 15:39:37 +02:00
GuillaumeDIDIER
551a201f56 Add dependecy for atomic fn types 2020-07-02 15:38:39 +02:00
GuillaumeDIDIER
a5a2824674 Fix Nehalem very wrong to hard coded 4 core 2020-06-04 14:06:38 +02:00
GuillaumeDIDIER
dfd59064fc Preliminary Work of Nehalem & Westmere slice support 2020-06-03 08:49:10 +02:00
GuillaumeDIDIER
b0784fadf8 Support microarchitecture for g5k experiments 2020-06-02 17:29:55 +02:00
GuillaumeDIDIER
6ae16cc6df Update to work with latest nightly 2020-05-29 16:26:53 +02:00
GuillaumeDIDIER
c84aefa2e8 Make calibration able to autodetect micro architecture - still hacky for number of cores 2020-05-28 11:22:50 +02:00
GuillaumeDIDIER
80c6a556bf Fix line reordering 2020-05-28 10:03:28 +02:00
Guillaume DIDIER
3726a2b14c Fix compile issues on non std platform 2020-05-28 10:01:22 +02:00
GuillaumeDIDIER
d102a755ce Add test programs for frequency / cache component on post-sleep timing differences 2020-05-27 14:03:06 +02:00
GuillaumeDIDIER
f06e60b9c1 Add first steps on complex addressing 2020-05-27 14:02:19 +02:00
GuillaumeDIDIER
144b4a498a Create and add cpuid crate 2020-05-27 14:00:19 +02:00
GuillaumeDIDIER
fb926dfe2a Refactor to start integrating frequency measurement and portability
- added preliminary tests of frequency measurements
- refactored the signature of calibrate function to parametrize hash function
- various cleanup
2020-05-11 17:04:33 +02:00
GuillaumeDIDIER
b7e8aff723 Tag results with commit 2020-05-01 10:26:00 +02:00
GuillaumeDIDIER
26b2d22942 Update result analysis scripts and code to the version for results-2020-04-20 2020-05-01 10:24:15 +02:00
Guillume DIDIER
bb8996efd0 Add analysis python script
This script currently just parses the CSV.
Future update should include plotting various metrics.
2020-04-13 11:16:46 +02:00
guillaume didier
bc926186b4 Add measurement results and analysis 2020-04-08 15:38:08 +02:00
guillaume didier
5c025fb495 Make the MMappedMemory generic 2020-04-07 14:25:13 +02:00
guillaume didier
ac4889372d Implement Borrow, Deref, AsRef and mut equivalent for MMappedMemory 2020-04-07 10:13:38 +02:00
guillaume didier
dca0b156b4 Add complex addressing function computation and output those when calibrating 2020-04-06 11:14:05 +02:00
guillaume didier
158b808d92 Add small utility used to trigger l3 accesses (conjoint use the a uncore cbo measuring utility allow cbo slice reverse) 2020-04-06 11:13:12 +02:00
guillaume didier
b7b6c8e9cc Add drop to safely deallocate memory 2020-04-03 11:30:56 +02:00
guillaume didier
811842e142 Add abstraction over mmap 2020-04-03 11:24:54 +02:00
guillaume didier
bebbf379c1 Make clippy happier 2020-04-01 16:31:06 +02:00
guillaume didier
f8b02c4b6f Minor refactor 2020-04-01 16:12:36 +02:00
guillaume didier
65f94dcb67 General refactor of the calibration implementation when adding l3 hit calibration
This moves most of the logic on a calibrate function taking as a paramater a slice of operations to calibrate
L3 hit is measured by flush followed by preftechnt1, cpuid serialization, timed access
2020-04-01 16:12:15 +02:00
guillaume didier
78ed3bafad Add results for warmed up analysis 2020-03-20 16:10:06 +01:00
guillaume didier
5c6c607c8f Add some warm up and fix some output related issues + make the cpuid leaf 4 availale as an util 2020-03-20 16:09:03 +01:00
guillaume didier
f599b74ef3 More analysis results 2020-03-20 16:08:02 +01:00
guillaume didier
d27dd77edc Analysis results 2020-03-18 14:33:08 +01:00
guillaume didier
56f17d1f27 Update analysis file 2020-03-18 14:32:10 +01:00
guillaume didier
8c9d54e44b Results for new version of cache_utils 2020-03-18 14:31:55 +01:00
guillaume didier
ba210848e2 cache_utils update 2020-03-18 14:30:16 +01:00
guillaume didier
d7982b17f0 REmove useless file 2020-03-18 14:29:32 +01:00
guillaume didier
b56e7b19b2 Analysis for cybercobaye 2020-03-17 10:02:28 +01:00
guillaume didier
08abde7fb7 Add measurements from citronvert 2020-03-16 09:52:40 +01:00
Julius Wenzel
2f805cc125 Measure on cybercobaye HyperThreading ON* 2020-03-13 12:17:39 +01:00
guillaume didier
e2212e61b9 Add raw results on citron vert + scripts 2020-03-13 11:18:21 +01:00
guillaume didier
17e1b283d8 Clean up 2020-03-12 14:46:43 +01:00
guillaume didier
cb9f598a17 Better Cflush calibration - only miss per cache line threshold determination 2020-03-12 14:20:06 +01:00
guillaume didier
b32ec3a68b Ensure std for teh cache_utils binary 2020-03-09 14:36:55 +01:00
guillaume didier
a287a264ba Add assertion to prevent attempts of building std and no_std at the same time 2020-03-09 14:32:10 +01:00
guillaume didier
639299175f Set up things so that a std binary can be built in cache_utils 2020-03-09 14:27:32 +01:00
guillaume didier
a176033851 Carious enhancements to cache calibration 2020-03-09 12:10:41 +01:00
guillaume didier
60fe76e366 Implement calibration on full 4k page 2020-02-28 12:03:51 +01:00
guillaume didier
2ce9de1482 Add the first attempt at detectecting prefetch 2020-02-25 08:27:40 +01:00
guillaume didier
44b0aaf372 Make clippy happier 2020-02-21 11:36:22 +01:00
guillaume didier
5e4025493b Further dependency upgrade and cleanup, using cargo-upgrade 2020-02-19 15:13:24 +01:00
guillaume didier
da4204f655 Overhaul of dependencies, inluding x86_64 0.9.2 breaking changes 2020-02-19 15:08:24 +01:00
guillaume didier
1948118841 Add cflush threshold determination 2020-02-18 17:07:59 +01:00
guillaume didier
c9afaaafe8 Flush and flush calibration 2020-02-18 08:45:15 +01:00
guillaume didier
00984ee2e0 Start working on cache calibration 2020-02-17 15:28:10 +01:00
guillaume didier
81a517de6b Refactor cache_info into a separate module 2020-02-17 09:17:44 +01:00
guillaume didier
2da2e7bf8e Rename cache utils 2020-02-05 10:23:52 +01:00