「数位身分证」可能出现资安漏洞吗有什么技术可以解决

导读 议题背景 依据内政部规划,预计在今(2020)年10月换发数位身分证(New eID)具有晶片功能,会整合自然人凭证,让护照签证、公

议题背景

依据内政部规划,预计在今(2020)年10月换发数位身分证(New eID)具有晶片功能,会整合自然人凭证,让护照签证、公投联署、国民年金、劳保等服务可线上办理,且遵循资通安全管理法、个人资料保护法等。

但另一方面,因为质疑数位身分证的资安保护,至5月15日上午已有1324人参与民间团体的联署,反对仓促换发数位身分证。其中包含中研院、大专院校的专家学者。

相关新闻与讨论:

联合报:学者反对数位身分证仓促上路,内政部:研议多年 科技报橘、中央社:民间忧数位身分证个资被看光光,内政部:会再完备相关规範 人权促进会:反对全面换发晶片身分证 内政部New eID资讯公开专区:澄清资讯

但究竟数位身分证可能的资安漏洞为何?运用新的资安技术可以解决问题吗?我们邀请专家回应如下。

陈以德(高雄医学大学医务管理暨医疗资讯学系副教授/前中华电信研究所助理研究员) 2020年6月1日

没有100%的资讯安全,能做到99.9%的安全就很好了,我们也得要为剩下可能发生0.1%的资安风险做好準备。数位身分证可以透过网路提供便利、快捷的各类申办案件,但便利与安全是天平的两端,需要做一些取捨。

关于数位身分证的安全性,笔者认为可以分两部分来讨论:一是卡片本身;二是卡片可以连到的后端系统,包含政府资料交换机制(T-Road)(注1)。

一、卡片本身

新的数位身分证使用Java Card(注2)智慧卡片,而卡片使用的作业系统是Java Card Open Platform(目前最新版本为JCOP 3.1)(注3)。Java Card的应用程式在隔离的虚拟机器Virtual Machine(VM)(注4)中执行;任何应用程式程式要读、写或修改卡片内资料,都受到权限控制,资料会被保护。

以JCOP 41 Java Card为例,它内含CPU、记忆体跟输入输出介面(I/O)(注5),支援DES(注6)、AES(注7)、RSA(注8),以及ECC (注9)等密码学模组,在金钥不离开卡片时,可用来执行加密、数位签章等动作。

数位身分证所使用的Java Card,需符合国际标準化组织所制定「资讯技术安全评估共同準则」(Common Criteria for Information Technology Security Evaluation, ISO/IEC 15408)中,安全技术评估等级(Evaluation Assurance Level 1-7, EAL)4+的安全认证(注10),或「联邦资讯处理标準」(Federal Information Processing Standards, FIPS)第140-2号(FIPS140-2)的密码模组安全需求标準。

笔者建议Java Card的生产过程,以ICT产业的技术,应该请主要生产Java Card的恩智浦半导体股份有限公司(NXP Semiconductors),全数交由NXP厂生产,并由国家级资安单位监控。以避免刚出厂的新卡,就被植入后门程式(注11)的情况发生。

数位身分证使用两个6~8码的个人身分识别码(Personal identification number, PIN),PIN code 1用来保护加密过的个人资料,而PIN code 2用来保护个人的金钥。民众使用上需避免为了方便,将 PIN code 1与 PIN code 2设成一样的密码。

二、后端系统

而后端系统部分,目前能使用自然人凭证获取资料的政府机关并不多。T-Road串接各机关,在授权后可以存取各机关的资料,例如户政、地政、劳保、健保、财税等。趁这次机会,各机关可以检视自己系统的安全性。

承接T-Road串接业务的厂商,应该把程式码公开(open source),由各界来检验安全性,并检查厂商有没有特意记录使用者的数位足迹。以AES加密标準为例,国家标準与技术研究院让AES在1998年公布后,接受各界检验;到2001年才发布为联邦资料处理标準(FIPS PUB 197),并开始使用。

在授权使用部分,各机关应该要拿到使用者一次性授权使用申请书及申请书的数位签章,才能释出加密后的使用者资料。使用者收到资料后,再解密,以防止恶意攻击者取得个人资料。

而申请书必须要有时间戳记,以防止重送攻击(replay attack)(注12)。所以除了T-road外,各机关不同资料的介接程式(Application Programming Interface, API),也需要公开程式码接受各界检验,以确保安全。

最后,世界有相关的资安技术或资安标準,需要调整自己,以达到世界的资安技术或资安标準。如此在与别的国家运用网路交换或共用资料时,才能提出我们系统符合哪些资安标準,让其他国家也放心与我们介接。

注释 政府资料交换机制(T-Road):政府资料传输平台,协助整合各政府机关所提供线上申办服务及数位资料,并运用新兴科技将政府服务主动递送给民众。(请参考T-Road资料传输规划说明) Java Card:使用Java程式语法撰写,主要用来储存金钥的智慧卡片。 Java Card Open Platform:可以操作Java Card的开源作业系统;开源(开放原始码,Open source)指的是程式码公开,每个人都可以自由使用并检验有没有恶意程式在其中。 Virtual Machine:虚拟机器,可以在隔离的环境中,执行作业系统。在隔离环境下,厂商开发的应用程式,要储取资料时才会受到控管。例如:可以在Windows的环境中,利用虚拟机器来执行Linux作业系统。 输入输出介面(I/O):晶片用来和外部交换资讯的通道,输出或输入资讯。 Data Encryption Standard(DES):资料加密标準。1976年被国家标準与技术研究院(National Institute of Standards and Technology, NIST)定为联邦资料处理标準(Federal Information Processing Standards, FIPS)FIPS-46;DES于2005年5月26日废止,它是使用56 位元金钥的对称加密演算法。 Advanced Encryption Standard(AES):进阶加密标準。NIST于1997向全世界公开甄选新一代对称演算法,用来取代DES,其中比利时密码学家尤安.达蒙(Joan Daemen)和文森.雷杰门(Vincent Rijmen)所设计的Rijndael加密法获选成为AES,并由NIST于2001年11月26日发布于FIPS PUB 197,AES是使用128~256位元金钥的对称加密演算法。对称加密演算法/非对称加密演算法:对称加密演算法加、解密所使用的金钥是一样的;而非对称加密演算法有2把不同的金钥,用其中一把金钥来加密,可以用另一把金钥来解密,所以可以把用来加密的金钥公开让大家知道,另一把用来解密的私密金钥则自行保管。另一用途则是用自行保管的私密金钥对文件做数位签章,而全世界的人,可以用公开金钥来检验这份文件是否是你签出来的。 RSA:由罗纳德.李维斯特(Ron Rivest)、阿迪.萨莫尔(Adi Shamir)以及伦纳德.阿德曼(Leonard Adleman)三位学者1977年提出的非对称加密演算法,RSA安全性是基于大整数做因数分解的困难性,现行自然人凭证便是使用RSA来做加密与签章。自然人凭证自100年1月1日起全面换发金钥长度为2048位元的凭证。 Elliptic Curve Cryptography(ECC):椭圆曲线非对称加密演算法,主要优势是使用较少的金钥长度,提供相当等级的安全性。一般而言ECC使用金钥长度160位元就相当于RSA 1024位元的安全性;且相对于RSA的指数运算,ECC用乘法运算,在计算速度上也比较快。 安全技术评估等级,一般商用品的安全最高是EAL等级4。EAL等级5(含以上)的产品,安全认证属于军事等级,且在必须由「局(NSA)」来执行验证,才能申请EAL 5至7级的产品安全认证。 后门程式:为了远端管理而开发的程式,被攻击者恶意使用以远端遥控方式窃取使用者个人资料。2007年法务部调查局调查厂商迈拓(Maxtor)的外接式硬碟,实际测试后证实有autorun.inf及ghost.pif木马程式,会主动连线及上传资料到外部网站。 Replay attack(重送攻击):一种网路攻击,攻击者拦截使用者发送的资料或数据并重複传送,以取得使用者资料或拖延正常的资料传输过程。

本文经新兴科技媒体中心授权刊登,原文刊载于此

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

猜你喜欢

最新文章