新聞中心
紅色寶石:安全保證緩存密鑰

創(chuàng)新互聯(lián)公司是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過去的十載時(shí)間我們累計(jì)服務(wù)了上千家以及全國政企客戶,如圍欄護(hù)欄等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過硬的技術(shù)實(shí)力獲得客戶的一致贊美。
在現(xiàn)代計(jì)算機(jī)上,緩存技術(shù)被廣泛應(yīng)用以提高程序的執(zhí)行效率。緩存允許程序快速訪問最近使用的數(shù)據(jù),而不是每次都從主存儲(chǔ)器中讀取數(shù)據(jù)。然而,緩存技術(shù)面臨一個(gè)嚴(yán)峻的安全威脅:緩存?zhèn)刃诺拦簦╟ache Side-channel Attack,簡(jiǎn)稱CSA)。CSA是一種允許攻擊者從目標(biāo)計(jì)算機(jī)的緩存中捕獲信息的攻擊。它可以從緩存中獲取敏感數(shù)據(jù),例如私鑰、密碼、證書以及其他個(gè)人信息。為了解決這一問題,該文章提出了一種名為“紅色寶石”的新緩存密鑰技術(shù),其可以保障緩存密鑰的安全性。
紅色寶石的設(shè)計(jì)基于現(xiàn)代處理器中的高速緩存(Cache),該技術(shù)允許緩存數(shù)據(jù)的訪問速度非常快,因?yàn)榫彺嫖挥谔幚砥鲀?nèi)部。但是,由于實(shí)現(xiàn)緩存技術(shù)需要運(yùn)用SRAM存儲(chǔ)器,所以緩存技術(shù)也受到了一些安全風(fēng)險(xiǎn)和攻擊方式的挑戰(zhàn)。例如,攻擊者可能會(huì)利用緩存對(duì)目標(biāo)的行為和著陸產(chǎn)生負(fù)面影響,從而獲取敏感信息。
紅色寶石的核心是緩存密鑰的安全保護(hù)。傳統(tǒng)上,緩存密鑰是通過組員直接使用的,但這種方法不安全,因?yàn)楣粽呖梢栽诰彺嬖L問時(shí)輕松地?cái)r截密鑰。 紅色寶石使用異常分析策略,為緩存密鑰的使用提供額外的安全保護(hù),而不需要修改算法或程序。紅色寶石可以在智能硬件和軟件端實(shí)現(xiàn),它為每個(gè)訪問緩存的CPU內(nèi)核創(chuàng)建了獨(dú)特的密鑰,密鑰將干擾緩存的數(shù)據(jù)。在紅色寶石中,密碼和內(nèi)核ID的隨機(jī)排列形成獨(dú)特的緩存地址,從而保護(hù)了用戶的數(shù)據(jù)。
以下是一個(gè)紅色寶石的示例程序,該程序?qū)?duì)緩存密鑰的存儲(chǔ)和訪問提供更加安全的保護(hù):
#include
#include
#include
typedef unsigned long long u64;
typedef struct {
u64 index;
u64 tag;
u64 data;
} cache_block;
typedef struct {
cache_block* blocks;
u64 size;
u64 num_sets;
} cache_set;
typedef struct {
cache_set* sets;
u64 num_sets;
} cache;
typedef struct {
u64 rand1;
u64 rand2;
} cache_KEY;
cache_key generate_cache_key() {
cache_key key;
key.rand1 = rand();
key.rand2 = rand();
return key;
}
u64 map_address(cache_key key, u64 address) {
u64 mapped_address;
mapped_address = ((address ^ key.rand1) > key.rand1);
return mapped_address;
}
cache_block get_block(cache_key key, cache* c, u64 address) {
u64 mapped_address = map_address(key, address);
u64 set_index = mapped_address % c->num_sets;
u64 tag = mapped_address / c->num_sets;
cache_set* set = &(c->sets[set_index]);
for (u64 i = 0; i size; i++) {
cache_block block = set->blocks[i];
if (block.tag == tag && block.index == set_index) {
return block;
}
}
cache_block new_block;
new_block.index = set_index;
new_block.tag = tag;
new_block.data = address * 2;
set->blocks[set->size++] = new_block;
return new_block;
}
void test_cache() {
cache memory_cache;
memory_cache.num_sets = 1024;
memory_cache.sets = (cache_set*)malloc(sizeof(cache_set) * memory_cache.num_sets);
for (u64 i = 0; i
cache_set set;
set.blocks = (cache_block*)malloc(sizeof(cache_block) * 16);
set.size = 0;
memory_cache.sets[i] = set;
}
printf("Generated cache.\n");
for (int i = 0; i
cache_key key = generate_cache_key();
u64 address = rand() % 1000000;
printf("Using cache key %llu, %llu to access memory address %llu\n", key.rand1, key.rand2, address);
cache_block block = get_block(key, &memory_cache, address);
printf("Block stored at %llu (tag %llu, index %llu) has value %llu.\n", &block, block.tag, block.index, block.data);
printf("Cache hit rate: %.2f%%\n", 100.0 * (float)(i+1) / 10.0);
}
}
int mn() {
srand(1);
test_cache();
return 0;
}
從上述示例程序中,我們可以看到,代碼中使用了一組隨機(jī)生成的Cache Key,將隨機(jī)的緩存地址映射到了不同的物理地址上。并且,如果緩存中未找到相應(yīng)信息,該算法將存儲(chǔ)數(shù)據(jù)到緩存中,從而保護(hù)數(shù)據(jù)的安全。
總結(jié):該方法能夠提供額外的安全保護(hù),而且不需要更改算法或程序。這個(gè)技術(shù)的實(shí)現(xiàn)是可行的,也為CSA攻擊提出了一種非常有前途的新型緩存防護(hù)方案。紅色寶石方案雖然需要引入一些計(jì)算開銷,但是通過這種方式加固緩存技術(shù)的安全性,是值得考慮的。
成都服務(wù)器托管選創(chuàng)新互聯(lián),先上架開通再付費(fèi)。
創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)-網(wǎng)站建設(shè),軟件開發(fā)老牌服務(wù)商!微信小程序開發(fā),APP開發(fā),網(wǎng)站制作,網(wǎng)站營銷推廣服務(wù)眾多企業(yè)。電話:028-86922220
本文名稱:紅色寶石安全保證緩存密鑰(redis緩存密鑰)
URL地址:http://www.dlmjj.cn/article/coegiep.html


咨詢
建站咨詢
