精华内容
下载资源
问答
  • Java进阶(二)当我们说线程安全时,到底在说什么   提到线程安全,可能大家的第一反应是要确保接口对共享变量的操作要具体原子性。实际上,在多线程编程中我们需要同时关注可见性、顺序性和原子性问题。本篇文章...

    Java进阶(二)当我们说线程安全时,到底在说什么

     

    提到线程安全,可能大家的第一反应是要确保接口对共享变量的操作要具体原子性。实际上,在多线程编程中我们需要同时关注可见性、顺序性和原子性问题。本篇文章将从这三个问题出发,结合实例详解volatile如何保证可见性及一定程序上保证顺序性,同时例讲synchronized如何同时保证可见性和原子性,最后对比volatile和synchronized的适用场景。

    原创文章,转载请务必将下面这段话置于文章开头处(保留超链接)。
    本文转发自技术世界原文链接 http://www.jasongj.com/java/thread_safe/

    多线程编程中的三个核心概念

    原子性

    这一点,跟数据库事务的原子性概念差不多,即一个操作(有可能包含有多个子操作)要么全部执行(生效),要么全部都不执行(都不生效)。

    关于原子性,一个非常经典的例子就是银行转账问题:比如A和B同时向C转账10万元。如果转账操作不具有原子性,A在向C转账时,读取了C的余额为20万,然后加上转账的10万,计算出此时应该有30万,但还未来及将30万写回C的账户,此时B的转账请求过来了,B发现C的余额为20万,然后将其加10万并写回。然后A的转账操作继续——将30万写回C的余额。这种情况下C的最终余额为30万,而非预期的40万。

    可见性

    可见性是指,当多个线程并发访问共享变量时,一个线程对共享变量的修改,其它线程能够立即看到。可见性问题是好多人忽略或者理解错误的一点。

    CPU从主内存中读数据的效率相对来说不高,现在主流的计算机中,都有几级缓存。每个线程读取共享变量时,都会将该变量加载进其对应CPU的高速缓存里,修改该变量后,CPU会立即更新该缓存,但并不一定会立即将其写回主内存(实际上写回主内存的时间不可预期)。此时其它线程(尤其是不在同一个CPU上执行的线程)访问该变量时,从主内存中读到的就是旧的数据,而非第一个线程更新后的数据。

    这一点是操作系统或者说是硬件层面的机制,所以很多应用开发人员经常会忽略。

    顺序性

    顺序性指的是,程序执行的顺序按照代码的先后顺序执行。

    以下面这段代码为例

     

    1

    2

    3

    4

     

    boolean started = false; // 语句1

    long counter = 0L; // 语句2

    counter = 1; // 语句3

    started = true; // 语句4

     

    从代码顺序上看,上面四条语句应该依次执行,但实际上JVM真正在执行这段代码时,并不保证它们一定完全按照此顺序执行。

    处理器为了提高程序整体的执行效率,可能会对代码进行优化,其中的一项优化方式就是调整代码顺序,按照更高效的顺序执行代码。

    讲到这里,有人要着急了——什么,CPU不按照我的代码顺序执行代码,那怎么保证得到我们想要的效果呢?实际上,大家大可放心,CPU虽然并不保证完全按照代码顺序执行,但它会保证程序最终的执行结果和代码顺序执行时的结果一致。

    Java如何解决多线程并发问题

    Java如何保证原子性

    锁和同步

    常用的保证Java操作原子性的工具是锁和同步方法(或者同步代码块)。使用锁,可以保证同一时间只有一个线程能拿到锁,也就保证了同一时间只有一个线程能执行申请锁和释放锁之间的代码。

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

     

    public void testLock () {

    lock.lock();

    try{

    int j = i;

    i = j + 1;

    } finally {

    lock.unlock();

    }

    }

     

    与锁类似的是同步方法或者同步代码块。使用非静态同步方法时,锁住的是当前实例;使用静态同步方法时,锁住的是该类的Class对象;使用静态代码块时,锁住的是synchronized关键字后面括号内的对象。下面是同步代码块示例

     

    1

    2

    3

    4

    5

    6

     

    public void testLock () {

    synchronized (anyObject){

    int j = i;

    i = j + 1;

    }

    }

     

    无论使用锁还是synchronized,本质都是一样,通过锁来实现资源的排它性,从而实际目标代码段同一时间只会被一个线程执行,进而保证了目标代码段的原子性。这是一种以牺牲性能为代价的方法。

    CAS(compare and swap)

    基础类型变量自增(i++)是一种常被新手误以为是原子操作而实际不是的操作。Java中提供了对应的原子操作类来实现该操作,并保证原子性,其本质是利用了CPU级别的CAS指令。由于是CPU级别的指令,其开销比需要操作系统参与的锁的开销小。AtomicInteger使用方法如下。

     

    1

    2

    3

    4

    5

    6

    7

    8

     

    AtomicInteger atomicInteger = new AtomicInteger();

    for(int b = 0; b < numThreads; b++) {

    new Thread(() -> {

    for(int a = 0; a < iteration; a++) {

    atomicInteger.incrementAndGet();

    }

    }).start();

    }

     

    Java如何保证可见性

    Java提供了volatile关键字来保证可见性。当使用volatile修饰某个变量时,它会保证对该变量的修改会立即被更新到内存中,并且将其它缓存中对该变量的缓存设置成无效,因此其它线程需要读取该值时必须从主内存中读取,从而得到最新的值。

    Java如何保证顺序性

    上文讲过编译器和处理器对指令进行重新排序时,会保证重新排序后的执行结果和代码顺序执行的结果一致,所以重新排序过程并不会影响单线程程序的执行,却可能影响多线程程序并发执行的正确性。

    Java中可通过volatile在一定程序上保证顺序性,另外还可以通过synchronized和锁来保证顺序性。

    synchronized和锁保证顺序性的原理和保证原子性一样,都是通过保证同一时间只会有一个线程执行目标代码段来实现的。

    除了从应用层面保证目标代码段执行的顺序性外,JVM还通过被称为happens-before原则隐式地保证顺序性。两个操作的执行顺序只要可以通过happens-before推导出来,则JVM会保证其顺序性,反之JVM对其顺序性不作任何保证,可对其进行任意必要的重新排序以获取高效率。

    happens-before原则(先行发生原则)

    • 传递规则:如果操作1在操作2前面,而操作2在操作3前面,则操作1肯定会在操作3前发生。该规则说明了happens-before原则具有传递性
    • 锁定规则:一个unlock操作肯定会在后面对同一个锁的lock操作前发生。这个很好理解,锁只有被释放了才会被再次获取
    • volatile变量规则:对一个被volatile修饰的写操作先发生于后面对该变量的读操作
    • 程序次序规则:一个线程内,按照代码顺序执行
    • 线程启动规则:Thread对象的start()方法先发生于此线程的其它动作
    • 线程终结原则:线程的终止检测后发生于线程中其它的所有操作
    • 线程中断规则: 对线程interrupt()方法的调用先发生于对该中断异常的获取
    • 对象终结规则:一个对象构造先于它的finalize发生

    volatile适用场景

    volatile适用于不需要保证原子性,但却需要保证可见性的场景。一种典型的使用场景是用它修饰用于停止线程的状态标记。如下所示

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

     

    boolean isRunning = false;

    public void start () {

    new Thread( () -> {

    while(isRunning) {

    someOperation();

    }

    }).start();

    }

    public void stop () {

    isRunning = false;

    }

     

    在这种实现方式下,即使其它线程通过调用stop()方法将isRunning设置为false,循环也不一定会立即结束。可以通过volatile关键字,保证while循环及时得到isRunning最新的状态从而及时停止循环,结束线程。

    线程安全十万个为什么

    问:平时项目中使用锁和synchronized比较多,而很少使用volatile,难道就没有保证可见性?
    答:锁和synchronized即可以保证原子性,也可以保证可见性。都是通过保证同一时间只有一个线程执行目标代码段来实现的。

     


    问:锁和synchronized为何能保证可见性?
    答:根据JDK 7的Java doc中对concurrent包的说明,一个线程的写结果保证对另外线程的读操作可见,只要该写操作可以由happen-before原则推断出在读操作之前发生。

     

    The results of a write by one thread are guaranteed to be visible to a read by another thread only if the write operation happens-before the read operation. The synchronized and volatile constructs, as well as the Thread.start() and Thread.join() methods, can form happens-before relationships.

    问:既然锁和synchronized即可保证原子性也可保证可见性,为何还需要volatile?
    答:synchronized和锁需要通过操作系统来仲裁谁获得锁,开销比较高,而volatile开销小很多。因此在只需要保证可见性的条件下,使用volatile的性能要比使用锁和synchronized高得多。

    问:既然锁和synchronized可以保证原子性,为什么还需要AtomicInteger这种的类来保证原子操作?
    答:锁和synchronized需要通过操作系统来仲裁谁获得锁,开销比较高,而AtomicInteger是通过CPU级的CAS操作来保证原子性,开销比较小。所以使用AtomicInteger的目的还是为了提高性能。

    问:还有没有别的办法保证线程安全
    答:有。尽可能避免引起非线程安全的条件——共享变量。如果能从设计上避免共享变量的使用,即可避免非线程安全的发生,也就无须通过锁或者synchronized以及volatile解决原子性、可见性和顺序性的问题。

    问:synchronized即可修饰非静态方式,也可修饰静态方法,还可修饰代码块,有何区别
    答:synchronized修饰非静态同步方法时,锁住的是当前实例;synchronized修饰静态同步方法时,锁住的是该类的Class对象;synchronized修饰静态代码块时,锁住的是synchronized关键字后面括号内的对象。

    展开全文
  • 信息安全CIA要素

    千次阅读 2020-03-18 22:27:35
    信息安全CIA要素 保密性 confidentiality 信息被泄露给非授权的用户、实体或过程。即信息只为授权用户使用。保密性是在可靠性和可用性基础之上,保障网络信息安全的重要手段。 完整性 Integrity 在输入和传输的...

    信息安全CIA三要素

    保密性

    confidentiality

    信息不被泄露给非授权的用户、实体或过程。即信息只为授权用户使用。保密性是在可靠性和可用性基础之上,保障网络信息安全的重要手段。

    完整性

    Integrity

    在输入和传输的过程中,不被非法授权修改和破坏,保证数据的一致性。

    可用性

    Availability

    指保证信息确实能为授权使用者所用,即保证合法用户在需要时可以使用所需信息。

    其他链接

    哔哩哔哩
    会同步该博客发一些自制视频

    微博
    用的比较少

    Github
    一些源代码

    知乎
    不懂的我一般会在上面提问

    简书
    同步该博客内容相同

    CSDN
    同步该博客内容相同
    博客首页

    个人联系方式

    QQ:2446264712

    微信:X15019749137

    邮箱:xiaoyangaichibaozi@yeah.net

    有意添加请备注 啊啊啊啊

    展开全文
  • 所谓信息科技风险,是信息科技在规划、设计、研发或采购、运行、维护、监控及报废过程中由于人为因素、技术漏洞和管理缺陷产生的操作、法律、金融和声誉风险。 以银行业为例,新的技术为中小商业银行的经营发展...

    背景

    近年来,移动互联、大数据处理、云计算、人工智能等一系列前沿技术与企业的业务创新深度融合,极大拓展地拓展了企业的业务空间和服务手段,但也使得IT风险越来越多,类型更加多样化、复杂化,越发难以管控,其可能造成的损失和影响也更加巨大。所谓信息科技风险,是指信息科技在规划、设计、研发或采购、运行、维护、监控及报废过程中由于人为因素、技术漏洞和管理缺陷产生的操作、法律、金融和声誉风险。

    以银行业为例,新的技术为中小商业银行的经营发展提供了强大的动力,但也给IT风险防控带来巨大挑战:首先,IT基础架构日趋复杂,系统和数据持续增加,给核心系统的稳定运行带来严峻挑战;其次,网络攻击、电信欺诈持续升级。盗取客户资金和信息等网络犯罪日益猖獗,银行面临的各类网络安全威胁不断升级,形势更为复杂。再次,第三方接口不断接入,防范外部风险带来一定挑战。最后,数据的集中导致风险的集中,防范灾难性事件压力巨大。

    信息科技风险管理的目标

    信息科技风险管理的目标是通过建立有效的机制,实现商业银行信息科技风险的识别、计量、监测和控制,促进商业银行安全、持续、文件运行,推动业务创新,提升信息技术使用水平,增强核心竞争力和可持续发展能力。近年来随着信息科技与业务的发展,监管要求的不断提高,新的巴塞尔协议也已经将信息科技风险列入了操作风险之一,各商业银行深刻意识到信息科技风险控制的重要性,为此加强了信息科技、风险管理、IT审计人才的引进力度,逐步探索信息科技、信息科技风险、信息科技审计“三道防线”的建设,以促进信息科技在风险可控的基础上,使之发挥越来越重要的作用,如何有效防范信息科技风险,发挥信息科技风险“三道防线”的作用,就成了各商业银行共同研究的话题。

    信息科技风险的危害

    当今世界,随着技术的发展,外部环境的多变,而信息系统本身固有的脆弱性,以及在信息系统运行过程中,内部的操作不当、管理不严所造成的系统漏洞,都会被外部黑客内部不法分子所利用,造成信息科技风险事件的发生,给金融企业带来直接或间接的损失,甚至对一个行的命运,乃至整个国家金融体系造成严重打击,典型的信息科技风险事件包括:误操作事件、信息系统中断事件、信息泄露事件、信息系统故障、信息科技案件等。

    三道防线

    为应对这些挑战,国内很多企业,尤其是金融机构,在信息科技风险管理方面提出了“三道防线”的概念。信息科技风险管理“三道防线”是指依据职责分离原则,在组织内部构造出三支对风险管理承担不同职责的团队,相互之间协调配合,分工协作,并通过独立、有效的监控,提高组织的风险管理有效性。

    “一道防线”是指组织业务及操作层面的网络安全管理,由组织的一线业务部门负责。职责是识别和管理网络安全固有风险,并对风险实施有效的控制措施,是整个网络安全保障工作的基础。“二道防线”是指网络安全风险的专职管理,由组织的风险管理部门和IT部门负责。职责是建立网络安全风险管理框架,实施独立的风险评估、计量、监测和报告,确保网络安全风险管理政策及措施有效执行,将风险控制在可接受水平。”三道防线“是指对网络安全独立的监督评价,即审计,由组织的审计监督部门负责。职责是对网络安全风险管理的相关控制、流程和系统进行独立审阅和检查,促进一、二道防线积极履职,进一步揭示网络安全风险,为一、二道防线提供改进建议。
    在这里插入图片描述

    针对第一道防线提供:信息科技管理解决方案

    信息科技部门处于信息科技风险管理的“第一道防线”,为履行“第一道防线”的信息科技管理职责,信息科技部门除承担信息系统的研发、测试、运维和管理以及基础设施的建设和运维工作之外,还应有效履行相应的信息科技检查及安全管理职能。一是加强IT制度体系建设,针对信息科技治理、系统运行管理、信息安全管理等重要领域,制定并不断完善管理制度体系,通过构建科学、完整的制度体系,促进信息科技管理及操作的规范化,减少各类IT风险事件的发生。二是做好信息安全防护。通过部署入侵防护系统、防病毒系统、信息防泄漏系统等安全产品并建立安全监测团队,定期进行漏洞扫描及渗透测试,全面保障网络安全。三是开展信息科技检查,通过有计划、分层次的安全监测和检查,准确识别并及时处置各种科技风险隐患。

    针对第二道防线提供:信息科技风险管理解决方案

    以银行为例,银行的合规风险部门处于信息科技风险管理的“第二道防线”,负责协调制定有关信息科技风险管理策略,尤其是在涉及信息安全、业务连续性计划和合规性风险等方面,为业务部门和信息科技部门提供建议及相关合规性信息,实施持续信息科技风险评估,跟踪整改意见的落实,监控信息安全威胁和不合规事件的发生。

    针对第三道防线提供:信息科技风险审计解决方案

    依旧以银行为例,银行内部审计部门设立专门的信息科技风险审计岗位,负责信息科技审计制度和流程的实施,制订和执行信息科技审计计划,对信息科技整个生命周期和重大事件等进行审计。

    内部审计部门应依据董事会要求以及监管的相关要求,针对全行信息科技治理、系统开发测试、信息安全、业务连续性、外包管理等重要领域,实施现场或非现场审计,揭示存在的风险尤其是系统性重大风险,提出针对性的改进建议。内部审计部门应利用相关工具促进整体审计效率,对信息科技风险一、二道防线的工作情况进行及时有效的检查和再评价,充分提升信息科技风险审计体系的整体效能。

    展开全文
  • 华为内部的Web安全原则

    千次阅读 2019-03-28 19:40:32
    Web安全原则 1.认证模块必须采用防暴力破解机制,例如:验证码或者多次连续尝试登录失败后锁定帐号或IP。 说明:如采用多次连续尝试登录失败后锁定帐号或IP的方式,需支持连续登录失败锁定策略的“允许连续失败的...

    Web安全原则

    1.认证模块必须采用防暴力破解机制,例如:验证码或者多次连续尝试登录失败后锁定帐号或IP。

    说明:如采用多次连续尝试登录失败后锁定帐号或IP的方式,需支持连续登录失败锁定策略的“允许连续失败的次数”可配置,支持在锁定时间超时后自动解锁。

    2.对于每一个需要授权访问的页面或servlet的请求都必须核实用户的会话标识是否合法、用户是否被授权执行这个操作,以防止URL越权。

    说明:防止用户通过直接输入URL,进行URL越权,请求并执行一些页面或servlet;建议通过过滤器实现。

    3. 登录过程中,往服务器端传递用户名和口令时,必须采用HTTPS安全协议(也就是带服务器端证书的SSL)。只提供本机接入、登录,做设备管理使用的场景暂时不要求。

    说明:如果在客户端和服务器间传递如帐号、口令等敏感数据,必须使用带服务器端证书的SSL。由于SSL对服务端的CPU资源消耗很大,实施时必须考虑服务器的承受能力。

    4. 对用户的最终认证处理过程必须放到服务器进行。

    5. 用户产生的数据必须在服务端进行校验;数据在输出到客户端前必须先进行HTML编码,以防止执行恶意代码、跨站脚本攻击。对于不可信的数据,输出到客户端前必须先进行 HTML 编码。

    6. 使用主流Web安全扫描工具扫描Web服务器和Web应用,不存在“高”级别的漏洞。

    7. 非嵌入式产品的Web应用,应使用预编译语句PreparedStatement代替直接的语句执行Statement,以防止SQL注入。

     

    数据库安全

    外购数据库、开源数据库、华为自研数据库都应进行安全配置,保证不出现安全漏洞。

    1.数据库口令禁止使用数据库厂商的缺省口令,且口令复杂度需满足“口令安全要求”。数据库若存在多个默认帐号,须将不使用的帐号禁用或删除。

    2. 使用单独的操作系统帐号来运行数据库;数据库中的敏感文件(如:Oracle数据库的init.ora、listener.ora等)需要严格控制访问权限,只能被数据库进程运行帐户和DBA帐户读写;

    对数据库帐户授予的权限进行严格清晰的划分,所有数据库帐户只能具备执行其任务的最小权限;对于有监听器功能的数据库(如Oracle的listener.ora)需要设置监听器密码或者设置为本地操作系统验证。

    3. 使用主流或华为指定的系统扫描软件进行安全扫描,不存在“高”级别的漏洞。

    敏感数据保护

    系统对敏感数据的存储、传输和处理需保证数据安全,并遵从适用国家和地区的法律和法规要求。

    敏感数据定义:包括但不限于口令、银行账号、个人数据(单独使用该数据或者结合其他信息可以识别某个活着的自然人的数据,包括:最终用户姓名、帐号、主叫和被叫号码、通信记录、话单、通信时间、定位数据等)。

    1. 口令不允许明文存储在系统中,应该加密保护。在不需要还原口令的场景,必须使用不可逆算法加密。对银行账号等敏感数据的访问要有认证、授权和加密机制。口令文件必须设置访问权限控制,普通用户不能读取或拷贝加密的内容。如果帐户文件/数据中含有口令又必须所有用户可访问,则需将帐户文件/数据与口令文件/数据分开。

    注:对于业界第三方主流软硬件(如操作系统、数据库、Web容器)自身提供的口令功能,不受本条限制。

    2. 在非信任网络之间进行敏感数据(包括口令,银行帐号,批量个人数据等)的传输须采用安全传输通道或者加密后传输,有标准协议规定除外。

    3.禁止使用私有加密算法。

    说明:

    1) 对称加密算法建议使用:AES192及以上强度;

    2) 密钥交换算法建议使用:DH1024;

    3) 数字签名算法建议使用:DSA1024、ECDSA192;

    4) 非对称算法建议使用:RSA2048、ECC192;

    5) HASH(哈希)算法建议使用:SHA256及以上强度;

    6) HMAC(基于哈希的消息验证码)算法建议使用:HMAC-SHA256;

    4. 用于敏感数据传输加密的密钥,不能硬编码在代码中。

    在敏感数据的安全传输上,优先使用业界的标准安全协议(如SSH v2/TLS1.0/SSL3.0/IPSec/SFTP/HTTPS等),并确保密钥可配置;如果是由产品自身实现安全传输过程,则优先使用Diffie-Hellman密钥交换算法,如果使用预置共享密钥等其他方法,也必须保证该密钥可配置和可替换。

    5. 禁止在日志、话单等文件中记录口令、银行账号、通信内容等敏感数据;

    6. 尽量避免在日志、话单中记录个人数据,如果必须记录个人数据,则所有数据必须进行结构化存储或适合于进行匿名化提取;

    1)尽量避免在日志中记录个人数据,如果必须记录,在个人数据之前或之后加统一的标记,以区别于其他非个人数据。

    2)尽量避免在话单中记录个人数据,如果必须记录,则话单必须进行结构化存储,字段间必须由统一的分隔符分开,每行的字段按列严格对应。

    7. 有个人数据导出功能的产品发布时必须同时提供对个人数据进行过滤或匿名化处理和功能或工具;

    8. 严格限制导出功能的权限,对导出功能的使用必须有日志记录。

    9. 涉及个人数据的采集/处理的功能须提供安全保护机制(如认证、权限控制、日志记录等),并通过产品资料向客户公开。

    10. 在正常业务流程和标准协议之外,禁止出于故障定位目的进行用户精确位置信息定位。如需处理用户精确位置数据,应有华为的明确需求,并在方案设计时,给予用户随时撤回同意的机会。

    口令安全策略管理

    1. 设置口令时,默认检测口令复杂度,口令至少满足如下要求:

    1) 口令长度至少6个字符(特权用户至少8个字符);

    2) 口令必须包含如下至少两种字符的组合:

    -至少一个小写字母;

    -至少一个大写字母;

    -至少一个数字;

    -至少一个特殊字符:`~!@#$%^&*()-_=+|[{}];:’”,<.>/? 和空格

    3) 口令不能和帐号或者帐号的逆序相同;

    若设置的口令不符合上述规则,必须进行警告。

    2. 系统必须提供锁定用户的机制。可选择如下两种方式之一:

    方式一:当重复输入错误口令次数(默认3次,次数系统可以设置)超过系统限制时,系统要锁定该用户。

    方式二:系统还可以设置下次允许输入口令的间隔时间加倍,采用这种方式时,用户可以不设置自动锁定。

    3. 可设置自动解锁时间(只适用于由于口令尝试被锁定的用户)

    1) 对于口令尝试N次失败被锁定的用户,系统要能够设置自动解锁时间,建议默认解锁时间为5分钟。

    2) 用户被锁时间达到预定义时间,可自动解锁该用户,或者也可通过安全管理员手工解锁该用户。

    3) 在锁定时间内,仅能允许应用安全管理员角色所属帐号手动解锁该用户。

    4. 操作界面中的口令不能明文显示,键入口令时不能明文显示出来(操作界面中的输入口令可不显示或用*代替),包括在终端上打印或存储在日志中时也不能明文显示口令,即使是内存中的明文口令(如登录期间),也应在使用后立即覆盖。

    5. 口令输入框不支持拷贝功能。

    6. 对于系统内置帐号的缺省口令,口令应符合复杂度的要求,并在客户资料中提醒用户修改。

    7. 用户可修改自己的口令,需满足如下要求:

    1) 用户修改自己口令时必须验证旧口令;

    2) 不允许修改除自身帐号以外的帐号的口令(管理员除外)

    8. 口令不能在网络中明文传输,口令等认证凭证在传输过程中必须加密,使用高安全等级的加密算法。

    说明:

    1) 对称加密算法建议使用:AES192及以上强度;

    2) 密钥交换算法建议使用:DH1024;

    3) 数字签名算法建议使用:DSA1024、ECDSA192;

    4) 非对称算法建议使用:RSA2048、ECC192;

    5) HASH(哈希)算法建议使用:SHA256及以上强度;

    6) HMAC(基于哈希的消息验证码)算法建议使用:HMAC-SHA256;

    9. 口令在本地存储时必须加密,需满足如下要求:

    1) 口令不能够明文写入日志文件、配置文件以及cookie中;

    2) 口令文件必须设置访问控制,普通用户不能读取或拷贝加密的内容。

    10. 产品配套资料提供清晰的帐号、口令清单。

    说明:华为提供用户清单模板

    安全资料

    针对售前、开局、现网运维几个阶段,提供配套安全方案、资料。

    1.在产品描述中对产品安全特性进行描述。

    2. 产品发布前提供产品通信矩阵。描述机器/网元/模块间的通信关系,包括:通信使用的端口、协议、IP地址、认证方式、端口用途信息等。

    说明:华为提供通信矩阵模板。

    3. 产品发布前提供防病毒软件部署指南。描述防病毒软件部署前的准备、流程、执行步骤、失败后回退处理,以及病毒特征库升级配置指导(Windows系统平台必选)。

    4. 产品发布前提供安全配置/加固指南。

    描述如下内容:

    -安全加固及检查,主要包括操作系统、数据库或WEB服务器等加固内容,需要包含具体的加固内容和操作步骤(必选)。

    -应用的安全配置,针对产品业务安全应用,需要启用哪些安全选项,配置哪些内容。(对于需要通过对产品开局时进行安全策略配置才能生效的安全功能,需要提供此部分内容)。如果没有应用的安全配置,命名为安全加固指南。安全加固指南是必须的。

    5. 产品发布前提供安全维护手册。从解决方案角度提供业务日常安全维护方面的指导,包括安全补丁、安全配置、防病毒软件例行检查等,指导维护人员例行进行安全维护。

    操作系统安全

    无论是使用通用操作系统(Windows、Linux、Unix等)还是嵌入式操作系统(如VxWorks、pSOS等),系统都应该保证软件及软件运行环境的安全。

    注:系统指交付给客户运行的整体系统,包括自研的软件、软件运行的操作系统及应用服务在内。

    1.使用主流漏洞扫描软件进行安全扫描,不存在高风险级别的漏洞。

    2.基于通用操作系统的新发货产品“操作系统加固+操作系统补丁”预装率=100%;对于不在生产环节预安装的产品,需要在正式发布的版本中包含默认的安全策略文件,并在产品资料中说明加固要求和操作步骤。

    说明:

    1)华为提供的操作系统,产品版本应基于最新的操作系统安全补丁进行开发和兼容性测试。

    2)合作方提供的操作系统,合作方需在版本交付前对操作系统安全补丁进行兼容性测试并随版本发布,并根据CIS标准对操作系统进行加固并随版本发布。

    3.使用Windows操作系统的产品,产品需要使用主流防病毒软件进行进行兼容性测试。

    说明:

    1)华为提供的Windows操作系统,合作方需使用主流防病毒软件或华为指定的防病毒软件进行兼容性测试;

    2)合作方提供的Windows操作系统,产品需要缺省配套华为指定的防病毒软件,并对防病毒软件进行兼容性测试。

    协议与接口防攻击

    系统应具备基本的防攻击能力,对影响自身的常见攻击具备防御能力等。注:系统指交付给客户运行的整体系统,包括自研的软件、软件运行的操作系统及应用服务在内。

    1.系统所有的对外通信连接必须是系统运行和维护必需的,对使用到的通信端口在产品通信矩阵文档中说明,动态侦听端口必须限定确定的合理的范围。通过端口扫描工具验证,未在通信矩阵中列出的端口必须关闭。

    说明:

    1)华为提供通信矩阵模板。

    2.尽量避免使用动态侦定端口的实现方式,在没有替代方案的情况下,如果必须使用,需满足如下要求:

    1)、如果使用业界标准的协议(如RPC、FTP被动模式),并有一定的安全措施(如NFS安全配置、防火墙支持FTP被动模式等);

    2)、如果自实现的方式,则动态侦听端口必须限定确定的合理的范围。

    2. 所有能对系统进行管理的通信端口及协议必须有接入认证机制,标准协议没有认证机制的除外。

    3. 对自研协议和业界非主流软件(包括非主流的开源软件)实现的协议要进行协议畸形报文攻击测试。

    4. 设备外部可见的能对系统进行管理的物理接口必须有接入认证机制。

    监听接口及防止非法监听

    产品开发合法监听接口应遵循国际标准及所在国的法律要求。

    1.在没有华为明确需求的情况下,严禁开发具有监听性质的功能和接口,无论该功能和接口是否要遵循相应的国家标准和国际标准。

    2. 在华为对合法监听接口有需求的情况下,合作方需根据华为提供的监听功能或接口的文件中的要求开发。

    说明:对提供合法监听接口的产品版本的要求(二选一)

    1)产品提供两个版本的软件安装包:一个支持合法监听,一个不支持合法监听。根据市场的安全要求,选择对应的软件安装包进行部署。

    2)产品提供软件安装包拆分为:基本软件安装包和合法监听插件安装包。根据市场的安全要求,选择是否安装合法监听插件安装包。

    3. 在正常业务流程和标准协议之外,禁止提供采集最终用户原始通信内容(语音类、短信/彩信类、传真类、数据业务类)的功能,即使出于保障网络运营和服务目的。

    注:

    1) 除了语音类、短信/彩信类、传真类、数据业务类信息属于通信内容外,最终用户的即时消息、E-Mail信息、URL同样属于通信内容;

    2) 允许使用debug功能,但debug信息中不允许包含口令、银行账号、通信内容等敏感数据。

     

    展开全文
  • 但是,紧随信息化发展而来的网络安全问题日渐凸出,网络安全问题已成为信息时代人类共同面临的挑战,网络信息安全问题成为当务之急,如果很好地解决这个问题,必将阻碍信息化发展的进程。 二、安全***、安全机制...
  • 计算机级信息安全知识点

    万次阅读 2021-03-26 19:23:04
    信息系统安全可以划分以下四个层次:设备安全,数据安全(要素),内容安全,行为安全 保护、检测、响应(PDR)策略是确保信息系统和网络系统安全的基本策略 进程与cpu的通信是通过共享存储器系统、消息传递系统、管道...
  • 关于网络安全等级保护制度与关键信息基础设施保护的关系,e安在线公众号之前的文章有详细说明,今天通过一个真实的案例来复盘。     案例 2015年,国家两个重要部门联合开发运行了一个网站,支撑在互联网上...
  • 信息安全的 CIA 要素

    万次阅读 2012-11-15 16:02:48
    在它诞生的初期,互联网的应用相对简单,使用互联网的人数较少,人们对安全的设计与考虑都比较少。经过几十年的发展和普及,现在互联网已经深入到我们生活的每个方面。从电子邮件,信息搜索,到IP电话,网上购物,订...
  • 原子性是操作是可分的。其表现在于对于共享变量的某些操作,应该是可分的,必须连续完成。 比如 a++ 操作,实际上 JMM 会分 3 步来完成。 ①②③读取变量 xttblog 的值 xttblog 的值+1 将值赋予变量 xttblog ...
  • 设计模式()——面向对象设计原则

    千次阅读 多人点赞 2019-10-16 07:28:15
    设计模式需要遵循基本的软件设计原则。可维护性(Maintainability)和可复用性(Reusability)是衡量软件质量的重要的两个属性: 可维护性:软件能够被理解、改正、适应及扩展的难易程度 可复用性:软件能够被复用...
  • 计算机级 信息安全技术题库——选择题1

    万次阅读 多人点赞 2018-09-10 23:54:22
    ------------纯手打内容并能保证百分百没错字------------> 更新:考试过啦 虽然只是及格( 感觉单靠买的题库的的话 良好应该没什么问题 但是优秀可能比较困难,感觉考试的题目也还是有挺多变动的 不过亲测四...
  • 信息安全

    千次阅读 2018-12-30 21:17:03
    第二章 什么是信息安全 •保密性(Confidentiality):保密性是保证信息与信息系统被非授权者所获取与使用。 •完整性(Integrity):信息是真实可信的,其发布者被冒充,来源被伪造,内容被篡改。 ...
  • 物联网安全综述报告

    万次阅读 多人点赞 2018-11-26 13:26:50
    物联网安全综述报告 文章目录物联网安全综述报告1. 物联网安全概述2. 物联网安全层次及其需求分析2.1 感知层概述及需求分析2.2 传输层概述及需求分析2.3 云服务层概述及需求分析2.4 应用层概述及需求分析3. 物联网...
  • 级计算机信息安全基础知识

    千次阅读 多人点赞 2019-05-17 09:11:01
    历史 1.1949年 Shannon(香农)撰写《保密系统的通信理论》 2.1999年9月13日,由国家公安部提出并组织制定,国家质量...第级:安全标记保护级; 第四级:结构化保护级; 第五级:访问验证保护级。 基础概念 自主...
  • 这里写自定义目录标题写在前面判断题正确单选题错误单选题...F 项目TD是项目网络安全管理的第一责任人,项目组在任命时要明确网络安全管理职责,负责网络安全管理措施在本项目组的执行,组织网络安全现场培训。 F 接
  • 为了保障数据安全,促进数据开发利用,保护公民、组织的合法权益,维护国家主权、安全和发展利益,制定本法。 【解读】 本条规定了《数据安全法(草案)》的立法目的。 第二条 在中华人民共和国境内开展数据活动...
  • 数据化的是企业自身安全风险数据建设与分析,需要根据基线数据、拓扑数据、业务数据梳理清楚可能存在的攻击路径与攻击面,针对性设防 社会化 这些数据是动态变化的,需要持续运营,对于业务环境变更带来的新的...
  • 网络安全的一个通用定义网络信息系统的硬件、软件及其系统中的数据受到保护,因偶然的或者恶意的破坏、更改、泄露,系统能连续、可靠、正常地运行,服务中断。网络安全简单的说是在网络环境下能够识别和消除...
  • 以前本站向大家介绍过一些软件开发的原则,比如优质代码的十诫和Unix传奇(下篇)中所以说的UNIX的设计原则。相信大家从中能够从中学了解到一些设计原理方面的知识,正如我在《再谈“我是怎么招聘程序”》中所说的,一...
  • 大数据CAP原则(CAP定理)、BASE理论

    千次阅读 2018-07-28 00:22:20
     CAP原则又称CAP定理,的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),可得兼。  CAP原则是NOSQL数据库的基石。Consistency(一致性)...
  • 1.3 信息安全管理基础 欢迎加入最棒的信息安全工程师社群,分享信息安全工程师备考干货资料。 备考交流QQ群:39460595 https://www.moondream.cn/?p=521 一.大纲要求 1.3.1 信息安全管理制度与政策 * 熟悉...
  • 什么是CIA Triad

    千次阅读 2020-08-25 08:48:26
    CIA要素(CIA Triad)的第一项原则是保密性(Confidentiality)。保密性是通过什么样的手段可以保护数据、对象、资源机密性的概念,保密性的目的是组织未授权用户访问数据。加密(encryption)、访问控制(access ...
  • 界面设计的原则及细节分析

    千次阅读 2014-05-13 10:36:19
    人和机器的互动过程(Human Machine Interaction)中,有一个层面,即我们所说的界面(interface)。用户界面设计是屏幕产品的重要组成部分。...用户界面设计的原则是:置界面于用户的控制之下、减少用户的记忆负担、
  • 第1章 网络安全概述与环境配置 网络攻击和防御分别包括哪些内容? 答:攻击技术主要包括以下几个方面。 (1)网络监听:自己主动去攻击别人,而是在计算机上设置一个程序去监听目标计算机与其他计算机通信的数据...
  • 信息安全技术(俞承杭)期末复习

    千次阅读 2021-01-15 14:13:08
    信息系统是基于计算机技术和网络通信技术的系统,是人、规程、数据库、硬件和软件等各种设备、工具的有机集合 在信息安全领域,重点关注的是与信息处理生活周期相关的各个环节 .信息化社会发展要素是物质、能源...
  • 硬件设计验证的手段中提到的安全分析的是FMEDA。 => 安全分析的手段有种:FTA, FMEA, FMEDA。其中FTA和FMEA用来支持硬件设计,FMEDA用来进行硬件设计的验证。 (4) 5.8 evaluation of the hardware ...
  • 端口安全 正确答案是:D 你的答案是:D 此题得分:2 3 2分 信息安全已经成为社会的焦点问题,以下属于信息系统安全运营原则的是( ) A.合规性与风险控制结合的原则;B.绝对安全原则;C.统一管控原则;D.易操作...
  • 安全准则 比特币的核心准则是去中心化,这一点对安全性具有重要意义。在中心化的模式下,例如传统的银行或支付网络,需要依赖于访问控制和审查制度将不良行为者拒之门外。相比之下,比特币这样的去中心化系统则将...
  • 敏捷的12条原则

    万次阅读 2018-08-02 22:36:31
    没有什么方法可以保证团队一定能开发出完美的软件,敏捷的团队也是同样地,所以,有一系列的原则来帮助敏捷团队。 最优先要做的是尽早、持续地交付有价值的软件,让客户满意。 欣然面对需求变化,即使在开发后期。...
  • 分布式之CAP原则详解

    万次阅读 多人点赞 2019-07-11 23:37:53
    CAP 原则指的是,这个要素最多只能同时实现两点,可能者兼顾。 1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有个指标。 一致性(C):在分布式系统中的所有数据备份,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 139,380
精华内容 55,752
关键字:

安全三不原则是指什么