柏林理工大学的信息安全学者宣布,成功用黑客手段攻破了特斯拉汽车的加密芯片,读取了其自动驾驶系统的机密信息,并逆向构造出了系统的架构。不过,普通车主不必担心:专家所用的黑客手段只在实验室环境下有效。
三名来自柏林理工大学的学者在12月27日宣布了这一消息。维尔林(Christian
Werling)对《明镜周刊》说:"如此简单地就读取到了特斯拉的企业机密,我们自己也很吃惊。"他和同伴屈纳普弗尔(Niclas
Kühnapfel)、雅各布(Hans Niklas
Jacob)一同在日前于汉堡召开的第37届"混沌通信年会"(37C3)上介绍了其研究成果。该年会由德国"混沌计算机俱乐部"(CCC)举办,是信息安全业界的重要交流会议。
这三名尚在攻读博士学位的青年学者透露,他们使用"硬件手段"攻破了美国厂商特斯拉生产的电动汽车的加密芯片:首先,他们用了一种常被称为"电压毛刺"(Voltage
Glitch)的攻击方法,即利用电压的突然跳变,导致芯片出现异常,保护电路因此失效。随后,他们就获取了芯片所搭载ARM64架构系统的Root权限。由此,IT专家就能读取包括源代码以及用户资料在内的整个自动驾驶系统的全部数据。
《明镜周刊》特别强调,"电压毛刺"攻击方法需要在实验室环境中用专业设备实施,道路上行驶的或者停靠的特斯拉电动汽车无法被黑客用这种方式攻破。三名青年学者也指出,他们用的硬件设备价格总共约600欧元,但是需要精确控制电压在2毫秒的瞬间突降0.56伏。
在37C3年会上,这几名专家还现场演示如何用此方法恢复一个刚刚被特斯拉车主删除的视频文件。他们估计,几乎全部特斯拉车型都存在这一安全漏洞,因为迄今所有车型都使用了被他们攻破的电路板。维尔林说:"哪怕车主购车时并未订购自动驾驶系统,也一样有这个漏洞。"
虽然普通消费者无需太担心黑客操控自动驾驶系统,但是维尔林指出,竞争对手却能通过这种方法来窃取特斯拉的机密信息,从而部分运用到自己的自动驾驶系统上。"比如,特斯拉汽车会不停地向公司总部发送一些信息用于训练AI。这个自主决定哪些信息应该发送、哪些不需要发送的系统,对于竞争对手研发自动驾驶技术就非常有价值。"
三名学者目前已经向特斯拉官方报告了这一安全漏洞。
他们还披露了一条有趣的信息:他们破解了特斯拉自动驾驶系统后,发现其中还隐藏着一种"埃隆·马斯克操作模式"。这三位年轻人在激活了此秘密模式后发现,特斯拉汽车能够完全自主驾驶,此时车主根本不需要像现在那样手扶方向盘。
-->
`,
"script":[]
}
, "gg_rightside": {
"html":`
`,
"script":[{"type":"text/javascript","src":"//widgets.outbrain.com/outbrain.js","async":"async"}]
}
, "gg_duturandom": {
"html":`
`,
"script":[]
}
, "gg_square": {
"html":`
`,
"script":[]
}
, "gg_topbanner": {
"html":`
`,
"script":[]
}
, "gg_middlesquare": {
"html":`
`,
"script":[]
}
, "gg_dutu": {
"html":`
`,
"script":[]
}
, "gg_botline": {
"html":``,
"script":[]
}
, "gg_dututop": {
"html":`
`,
"script":[]
}
, "gg_shipintop": {
"html":`
`,
"script":[]
}
, "gg_inContent": {
"html":`
`,
"script":[]
}
, "gg_shipinrandom": {
"html":``,
"script":[]
}
, "gg_sideSticky": {
"html":`
`,
"script":[]
}
, "gg_bottombanner": {
"html":`
`,
"script":[{"type":"text/javascript","src":"//widgets.outbrain.com/outbrain.js","async":"async"}]
}
, "gg_marquee": {
"html":`
`,
"script":[]
}
}
const adEnv={
"gg_header": {
"html":``,
"script":[{"type":"text/javascript","exec":` var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; var pbjs = pbjs || {}; pbjs.que = pbjs.que || []; `},{"type":"text/javascript","src":"https://adncdnend.azureedge.net/adn-hb/adn.wnx2.js","async":""},{"src":"https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js","async":"","data-ad-client":"ca-pub-7528949385909099"},{"type":"text/javascript","src":"https://adncdnend.azureedge.net/adn-video/WenxuecityPlayer.js","async":"async"}]
}
}
const wxcEnv = {
"base":{
"exe":[],
"src":[
{"src": "/news/js/recommendednews.js","defer":"true"},
{"src":"/js/wxcFunc.js","defer":"true"}
]
},
"func":{
"exe":[
//展示评论
'function showMoreComments(){let n = 5;for(let i=0;i
2){dom.hide();}}$("#showallcomment").show();$("#showlesscomment").hide();};hideComments();',
],
"src":[
//图片,搜索,QR code
{"src": "/news/js/view.js?v=05132024"},
//计数器
{"src":"//count.wenxuecity.com/service/count/script/do.php?type=news&id=125339167&n=0&out=jsval","defer":"true"},
]
}
}
function wxcCode(){
wxcEnv.base.exe.forEach(x=>{
let tag = buildAdcode(x);
document.head.append(tag);
})
wxcEnv.base.src.forEach(src => {
let tag = buildSrc(src)
document.head.append(tag);
});
wxcEnv.func.exe.forEach(x=>{
let tag = buildAdcode(x);
document.body.append(tag);
})
wxcEnv.func.src.forEach(src => {
let tag = buildSrc(src)
document.body.append(tag);
});
}
function adcode(){
let adkey = Object.keys(ads);
adkey.forEach(x=>{
let code = ads[x].html;
let div = document.getElementById(x);
if(div)div.innerHTML = code;
ads[x].script.forEach(s=>{
if(Object.keys(s).indexOf('src')===-1){
let tag = buildAdcode(s.exec);
document.body.append(tag);
}else{
let tag = buildSrc(s);
document.body.append(tag);
}
})
})
}
function baseCode(){
let baseKeys = Object.keys(adEnv);
baseKeys.forEach(x=>{
adEnv[x].script.forEach(s=>{
if(Object.keys(s).indexOf('src')===-1){
let tag = buildAdcode(s.exec);
document.head.append(tag);
}else{
let tag = buildSrc(s);
document.head.append(tag);
}
})
})
}
function buildAdcode(script){
let tag = document.createElement('script');
tag.innerHTML = script;
return tag;
}
function buildSrc(obj){
let keys = Object.keys(obj);
let tag = document.createElement("script");
keys.forEach(key=>{
tag.setAttribute(key, obj[key]);
})
return tag ;
}