Guillume DIDIER
206d45b823
Finish the function placement module (IP tool)
2021-10-20 13:57:57 +02:00
Guillume DIDIER
73d0cceed6
Merge remote-tracking branch 'origin/g5k'
2021-10-13 13:54:19 +02:00
Guillume DIDIER
6f32c1b469
Add support for various calibration strategies.
...
The generic channel can now be told to calibrate using a AV model (a Attacker and Victim socket model is stubbed but not implemented).
2021-10-13 13:52:38 +02:00
Guillaume Didier
8c77c1558d
Fix comments
2021-10-01 16:38:44 +02:00
Guillaume Didier
3dd5148fe5
Merge branch 'g5k' of https://gitlab.inria.fr/uarch/dendrobates-t-azureus
2021-10-01 11:04:35 +02:00
Guillaume Didier
f7132c911c
Optimised experiments
2021-10-01 11:02:20 +02:00
Guillaume Didier
c7b0cc4130
Do not calibrate unneeded ops
2021-09-29 16:45:13 +02:00
Guillaume Didier
c43daf8499
Fix bug in unsupported hashing that resulted in a ridiculous number of iteration
2021-09-29 11:24:23 +02:00
Guillume DIDIER
e3ef141792
Performance tweaks
2021-09-29 09:52:12 +02:00
Guillaume Didier
bb0b008bbe
cpupower for grid5k
2021-09-28 15:34:31 +02:00
Guillume DIDIER
6f8ae88e58
Fixes around cacheline length magic number
...
Cache line length is now a constant. This should eventually be replaced with some sort of lazy static info, that is extracted from CPUID if possible.
2021-09-28 08:55:12 +02:00
Guillume DIDIER
a272c79127
More work on unknown cache slicing handling
2021-09-27 16:27:53 +02:00
Guillume DIDIER
01ae16b015
Ensure the calibration infrastructure works correctly.
2021-09-27 11:35:51 +02:00
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