Edwards(42866)
发表于2023年04月19日 12时56分 星期三
来自消失吧!书本
Shawn the R0ck 写道:
私钥一直是安全保护的核心目标。由于密钥槽的限制,大多数加密货币硬件钱包使用 MCU 芯片(如 STM32F205RE)进行实现,以便能使用secure element存储和支持更广泛的加密货币种类,然而,那些对保护私钥有更高安全要求的人通常会对 Java 卡感兴趣,因为Java Card基本上是具有加密算法硬件实现的智能卡。私钥或对称密钥无法从中提取。用户只能从 Java 卡获得加密操作的结果,另外一点是已经使用通信参数初始化但尚未加载应用程序(applet)的 Java 卡是可由用户编程的,而且有一些以 Java 卡 applet 形式实现的各种功能的自由开源软件项目。即使Java Card作为HSM(硬件安全模块)的安全性高于常见加密货币硬件钱包的实现,但依然有安全风险,HardenedVault介绍了两个典型的漏洞,这些漏洞位于更底层的JCRE(Java Card运行时环境),虽然不会导致私钥被泄露,但会导致应用程序陷入无法恢复的错误。一旦出现这种问题,卡中的私钥就可能会丢失。智能卡作为 HSM 的实现比基于 MCU 的解决方案(几乎所有硬件钱包都采用了这种方案)更加安全,但仍存在某些安全风险。甚至获得 EAL 5+ 认证的硬件钱包也有被攻击的记录。因此,在系统安全方面,我们仍需要坚持纵深防御的策略。另一方面,透明度很重要,开源是确保 HSM 的整个运行环境能够得到适当审计的唯一途径。对于 Java 卡,我们希望未来能够拥有一个自由开源且可更新的 JCRE。或者某种功能上类似于 Java 卡但可以用 C 语言编程的 HSM(对不起,我们不想使用 Rust,因为我们已经有了现代的缓解和检测器,Rust 对此来说有些生锈了,不是吗?),甚至可以直接使用通用计算(如可信计算、运行时保护、攻击面缩小等)实现。
function effect_add(ele,num2=1){
var num1 = parseInt(ele.text());
num2=num1+1;
var tt = 15;
var cc = 3;
var span_num = num2-num1;
if(span_num<=0)return false;
if(span_num<10){
tt=0.1;cc=1;
}else if(span_num>=10 && span_num<20){
tt=10;cc=2;
}else{
tt=15;cc=3;
}
var nn = 0;
var tc = parseInt(span_num/cc);
var c_num = 0;
var rt = parseInt(tt*100/tc);
var t = setInterval(function(){
if(c_num == tc){
var val = num1+span_num;
clearInterval(t);
}else{
var val = num1+cc*c_num;
}
ele.text(val);
c_num++;
},rt);
}
$("div.actions a[rel=hvala]").click(function () {
var _this = $(this);
var span = _this.find('span');
var id = _this.attr('data');
$.post('//solidot.justindustin.workers.dev/my/act?op=hvala', {id: id}, function (data) {
var data = eval("(" + data + ")");
if (data.id == 1) {
effect_add(span,data.num);
_this.parent('li').toggleClass('active');
} else {
alert(data.msg);
if (data.id == -2) {
window.location.href = "/login";
}
}
});
});
$("div.actions a[rel=fav]").click(function () {
window.location.href="/login";
})
$('div.block_m span.user').mouseover(function () {
var _this = $(this).children('.user_box');
if (_this.html() == "") {
var start = '
';
var end = '
';
_this.html(start + '
' + end);
$.ajax({
type: "POST",
url: "/user/userinfo",
data: "user=" + $(this).attr('id'),
success: function (data) {
var data = eval("(" + data + ")");
var content = '';
if (data[0] == -2) {
content += '
暂无个人简介
';
} else {
content += '
' + data[0][0] + data[0][1] + '
';
content += '
关系:';
if (data[1] == -1) {
content += '自己';
} else if (data[1][0] == 0) {
content += '
普通
修改关系';
} else if (data[1][0] == 1) {
content += '
朋友
修改关系';
} else if (data[1][0] == 2) {
content += '
敌人
修改关系';
}
content += "
";
if (data[2] != undefined) {
content += '
签名:' + data[2] + '
';
}
}
_this.html(start + content + end);
}
})
}
else
_this.removeClass('hiden')
}).mouseout(function () {
$(this).children('div.user_box').addClass('hiden')
})
$('#ul_nav li.s_icon').mouseover(function(){
var d = $(this).children('div');
d.toggleClass('hiden');
}).mouseout(function(){
var d = $(this).children('div');
d.toggleClass('hiden');
});
$('.wechat').mouseover(function(){
$('.wechat_code').toggleClass('hiden');
}).mouseout(function(){
$('.wechat_code').toggleClass('hiden');
});
$(document).ready(function(){
$('.nav-secondary a').click(function(){
var _txt = $(this).text();
_hmt.push(['_trackEvent', 'nav', 'click', _txt])
})
$('.btn_ss').click(function(){
var _txt = $(".textinp").val()
_hmt.push(['_trackEvent', 'search', 'click', _txt])
})
$('.block_m a').click(function(){
var _txt = $(this).text();
_hmt.push(['_trackEvent', 'story', 'click', _txt])
})
})
document.write(unescape("%3Cscript src='https://hm.baidu.com/h.js%3Fd11396a350156e4682e4156a671bdaf1' type='text/javascript'%3E%3C/script%3E"));