精华内容
下载资源
问答
  • 生活中的常识 希望对您有帮助 广发银行网银安全控件怎么下载安装 导读本文是关于生活中常识的仅供参考如果觉得很不错欢迎 点评和分享 一般来说通过网银进行网上支付 都需要安装相对应银行网银安全控件今天我以广发...
  • 工行网银安全控件

    2018-11-28 14:54:53
    工行网银securityasistant.工行网银安全控件 网络安全控件
  • 广发银行网银安全控件怎么下载安装.docx
  • 齐鲁银行网银安全控件是登陆齐鲁网上银行时需要要安全的工具之一,齐鲁网银控件这是齐鲁银行用户们再网上登录齐鲁银行必备的一款银行安全控件,很多朋友无法安装齐鲁银行控件,需要手动下载。我们为大家提供齐鲁网银...
  • 兰州银行网银安全控件工具是一款在兰州网上银行登录个人网银专业版和企业网银时必须要安装的一个安全控件。兰州银行网银安全控件只需在用户使用的电脑上安装一次,以后进入网上银行登录页面时,无需再次安装。需要此...
  • 西安银行网银安全控件是白虎我们使用网上银行时的环境安全,主要是输入密码防钓鱼这些。不安装是输入不了密码的。 安装方法1、首先关闭正在运行的浏览器 2、打开安装文件 3、点击安装读条完成 4、如果安装失败,清理...
  • 网络工具 -浏览辅助 -上海银行网银安全控件免费下载.zip
  • 上海浦东发展银行网上银行安全控件,主要是保护网上交易的安全,当然安全控件并不能完全保证你的交易安全,所以还是要多注意环境。 网上银行安全指引网上银行是近年来随着互联网的蓬勃发展而兴起的银行业务,它能够...
  • 那么网上银行的使用就会越来越多,是不是就会出现问题,比如:没有usbkey驱动啊,安装不了密码控件啊,晋商银行网银安全控件就是帮助我们解决晋商银行网银使用时遇到的控件问题。 安装方法1、首先关闭正在运行的...
  • 中行网银安全控件v1.0官方版 软件大小:1.14MB 软件语言:简体中文 软件类别:网络安全 软件授权:官方版 更新时间:2015-01-28 应用平台:/Win8/Win7/WinXP 中行网银安全控件是一款常用的网银安全控件。...

    中行网银安全控件 v1.0 官方版

     

    软件大小:1.14MB

    软件语言:简体中文

    软件类别:网络安全

    软件授权:官方版

    更新时间:2015-01-28

    应用平台:/Win8/Win7/WinXP

    中行网银安全控件 v1.0 官方版

    中行网银安全控件是一款常用的网银安全控件。中行网银安全控件可为中行用户提供了安全的电脑登录使用环境,让用户安全登录网银,防止进入诈骗网站,方便进行网络支付。

    中行网银安全控件功能介绍:

    用于防范恶意程序的攻击,如木马程序等,它通过切断键盘操作与木马病毒之间的通道,来更好地保护网上银行用户的信息安全。中国银行网上银行所有密码和动态口令输入区域都设置了安全控件保护,有效防范木马程序窃取密码,大大提高了交易安全性。

    中行网银安全控件常见问题说明:

    1、我第一次登录网银时,弹出了是否安装“中国银行网上银行安全控件”的提示,这是什么意思?

    答:安装安全控件可以防止他人通过恶意程序(如木马病毒程序)控制您的计算机以窃取您的用户名、密码等重要数据。建议您在首次登录网银时,点击 “网上银行登录安全控件”链接,下载并安装网银安全控件,否则您无法输入中行网银登录密码。安装安全控件的提示在第一次登录网银后不再显示。

    2、为什么会下载安全控件失败?

    答:如果您的安全控件下载失败,原因可能是有第三方安全软件拦截,导致安全控件下载程序不完整,或网络传输不稳造成下载数据丢包失败,产生容量偏差。如果您在下载安全控件时被其他软件拦截,那么一定要选择“允许”;如果您已经在第三方安全软件设置了“拒绝”策略,会造成杀毒软件没有任何提示就直接把安全控件拦截下来,建议您在下载和安装安全控件时退出其他各种安全类软件;如果您的网络传输不稳定造成数据下载不完整,请重新下载控件安装程序。

    3、为什么在安装“中国银行网上银行安全控件”的过程中出现乱码?如何解决?

    答:安装安全控件过程中出现乱码,是因为您选择下载的安全控件版本不正确。如果您使用的是英文版操作系统,请到英文版的网银登录页面中下载安全控件;如果您使用的是中文版操作系统,请到中文版的网银登录页面中下载安全控件。

    4、如何正确卸载用户系统中的安全控件?

    答:请进入控制面板,双击“添加删除程序”,选中“中国银行网上银行安全控件”,点击删除(卸载)即可。

    5、安全控件适用于什么操作系统?是否支持vista操作系统?

    答:最新升级后的网上银行安全控件适用于各版本的32/64位Windows操作系统,包括Windows 2000、XP(32/64位)、 Vista(32/64位)和Win7(32/64位)。

    下载页面:http://www.33lc.com/soft/44777.html

    http:/m.33lc.com/soft/44777.html

    转载于:https://my.oschina.net/tooku/blog/373252

    展开全文
  • 登陆交行网银 不再担心安全控件下载不了啦
  • 网络-计算机-安全相关
  • 网银安全控件问题

    2019-09-27 03:46:31
    网银的密码输入控件是通过直接读键盘设备IO获取的输入。需要使用驱动级的键盘模拟输入技术才能输进去。 一个是WinIO,肯定能实现,我已测试过,WinIO怎么用可以百度一下,有很多资料。 另外一个是虚拟键盘驱动,...

    https://www.jianshu.com/p/035af6ed4fa8

    网银的密码输入控件是通过直接读键盘设备IO获取的输入。需要使用驱动级的键盘模拟输入技术才能输进去。

    一个是WinIO,肯定能实现,我已测试过,WinIO怎么用可以百度一下,有很多资料。

    另外一个是虚拟键盘驱动,网上有个DD虚拟键盘http://www.ddxoft.com/,就是这样实现的,这个DD虚拟键盘分免费版和收费版,免费版有广告,会改IE主页,(而且不知道有没有后门),收费版的使用费为500元一台电脑一年。

    也可以自行用WDK开发一个虚拟键盘驱动

    • python模拟按键输入(输入的是状态码)
    # _*_ coding:UTF-8 _*_
    import win32api
    import win32con
    import win32gui from ctypes import * import time VK_CODE = { 'backspace':0x08, 'tab':0x09, 'clear':0x0C, 'enter':0x0D, 'shift':0x10, 'ctrl':0x11, 'alt':0x12, 'pause':0x13, 'caps_lock':0x14, 'esc':0x1B, 'spacebar':0x20, 'page_up':0x21, 'page_down':0x22, 'end':0x23, 'home':0x24, 'left_arrow':0x25, 'up_arrow':0x26, 'right_arrow':0x27, 'down_arrow':0x28, 'select':0x29, 'print':0x2A, 'execute':0x2B, 'print_screen':0x2C, 'ins':0x2D, 'del':0x2E, 'help':0x2F, '0':0x30, '1':0x31, '2':0x32, '3':0x33, '4':0x34, '5':0x35, '6':0x36, '7':0x37, '8':0x38, '9':0x39, 'a':0x41, 'b':0x42, 'c':0x43, 'd':0x44, 'e':0x45, 'f':0x46, 'g':0x47, 'h':0x48, 'i':0x49, 'j':0x4A, 'k':0x4B, 'l':0x4C, 'm':0x4D, 'n':0x4E, 'o':0x4F, 'p':0x50, 'q':0x51, 'r':0x52, 's':0x53, 't':0x54, 'u':0x55, 'v':0x56, 'w':0x57, 'x':0x58, 'y':0x59, 'z':0x5A, 'numpad_0':0x60, 'numpad_1':0x61, 'numpad_2':0x62, 'numpad_3':0x63, 'numpad_4':0x64, 'numpad_5':0x65, 'numpad_6':0x66, 'numpad_7':0x67, 'numpad_8':0x68, 'numpad_9':0x69, 'multiply_key':0x6A, 'add_key':0x6B, 'separator_key':0x6C, 'subtract_key':0x6D, 'decimal_key':0x6E, 'divide_key':0x6F, 'F1':0x70, 'F2':0x71, 'F3':0x72, 'F4':0x73, 'F5':0x74, 'F6':0x75, 'F7':0x76, 'F8':0x77, 'F9':0x78, 'F10':0x79, 'F11':0x7A, 'F12':0x7B, 'F13':0x7C, 'F14':0x7D, 'F15':0x7E, 'F16':0x7F, 'F17':0x80, 'F18':0x81, 'F19':0x82, 'F20':0x83, 'F21':0x84, 'F22':0x85, 'F23':0x86, 'F24':0x87, 'num_lock':0x90, 'scroll_lock':0x91, 'left_shift':0xA0, 'right_shift ':0xA1, 'left_control':0xA2, 'right_control':0xA3, 'left_menu':0xA4, 'right_menu':0xA5, 'browser_back':0xA6, 'browser_forward':0xA7, 'browser_refresh':0xA8, 'browser_stop':0xA9, 'browser_search':0xAA, 'browser_favorites':0xAB, 'browser_start_and_home':0xAC, 'volume_mute':0xAD, 'volume_Down':0xAE, 'volume_up':0xAF, 

    转载于:https://www.cnblogs.com/davidwang456/articles/8708479.html

    展开全文
  • 计算机网络安全相关
  • 网络-计算机-安全相关
  • 浏览器安全控件是如果支付宝一样结合web程序密码数据安全处理的程序,采用C++语言开发通常的安全控件分为两种,一种是指支持IE内核的浏览器,一种支持所有内核的浏览器,支付宝采用的是支持所有内核的浏览器,但是...
    1. 浏览器安全控件是如果支付宝一样结合web程序密码数据安全处理的程序,采用C++语言开发
    2. 通常的安全控件分为两种,一种是指支持IE内核的浏览器,一种支持所有内核的浏览器,支付宝采用的是支持所有内核的浏览器,但是为了使用IE内核浏览器的一些特性支付宝继续保留IE内核版本
    3. 安全控件密码输入有两种方式,一种是虚拟键盘(大多银行使用),另一种是自绘密码控件支付宝,财付通句使用此种方
         4.     http://www.cnblogs.com/xproer/archive/2011/11/27/2264971.html
               此控件支持SSL协议,并提供MD5,BASE64及自定义加密方式,有效防止木马窃取键盘记录。
          5. ActiveX 控件只能在 IE 中使用,淘宝在 Firefox、Chrome 中使用的控件是使用 NPAPI 编写的


    1. 下面讲一下加密方式

      des加密,这个种加密算法适合于Java做可逆加密,使用方便


      #ifndef Des_H
      #define Des_H
      
      //! enum    bool{false,true}; 
      /*!  
      if bool is not supported,use this or just replace with char and use 1 for true,0 for false;
      @see enum    {ENCRYPT,DECRYPT};
      */
      enum    {ENCRYPT,DECRYPT};
      /*@brief  16圈子密钥*/
      static bool SubKey[2][16][48];// 16圈子密钥
      /*@brief 3次DES标志*/
      static bool Is3DES;// 3次DES标志
      static char Tmp[256];
      static char deskey[16];
      typedef bool    (*PSubKey)[16][48];
      
      class _declspec(dllexport) Des
      {
      public:
          Des();
          ~Des();
          //! Type—ENCRYPT:加密,DECRYPT:解密
          /*! 
          输出缓冲区(Out)的长度 >= ((datalen+7)/8)*8,即比datalen大的且是8的倍数的最小正整数
          In 可以= Out,此时加/解密后将覆盖输入缓冲区(In)的内容
          当keylen>8时系统自动使用3次DES加/解密,否则使用标准DES加/解密.超过16字节后只取前16字节
          @see bool Des_Go(char *Out,char *In,long datalen,const char *Key,int keylen,bool Type = ENCRYPT);
          */
      
          bool Des_Go(char *Out,char *In,long datalen,const char *Key,int keylen,bool Type = ENCRYPT);
      
      private:
          /*! @brief 标准DES加/解密
          @see static void DES(char Out[8], char In[8], const PSubKey pSubKey, bool Type);
          */
          static void DES(char Out[8], char In[8], const PSubKey pSubKey, bool Type);//标准DES加/解密
          /*! @brief 设置密钥
          @see static void SetKey(const char* Key, int len);
          */
          static void SetKey(const char* Key, int len);// 设置密钥
          /*! @brief 设置子密钥
          @see static void SetSubKey(PSubKey pSubKey, const char Key[8]);
          */
          static void SetSubKey(PSubKey pSubKey, const char Key[8]);// 设置子密钥
          /*! @brief f 函数
          @see static void F_func(bool In[32], const bool Ki[48]);
          */
          static void F_func(bool In[32], const bool Ki[48]);// f 函数
          /*! @brief S 盒代替
          @see static void S_func(bool Out[32], const bool In[48]);
          */
          static void S_func(bool Out[32], const bool In[48]);// S 盒代替
          /*! @brief 变换
          @see static void Transform(bool *Out, bool *In, const char *Table, int len);
          */
          static void Transform(bool *Out, bool *In, const char *Table, int len);// 变换
          /*! @brief 异或
          @see static void Xor(bool *InA, const bool *InB, int len);
          */
          static void Xor(bool *InA, const bool *InB, int len);// 异或
          /*! @brief 循环左移
          @see static void RotateL(bool *In, int len, int loop);
          */
          static void RotateL(bool *In, int len, int loop);// 循环左移
          /*! @brief 字节组转换成位组
          @see static void ByteToBit(bool *Out, const char *In, int bits);
          */
          static void ByteToBit(bool *Out, const char *In, int bits);// 字节组转换成位组
          /*! @brief 位组转换成字节组
          @see static void BitToByte(char *Out, const bool *In, int bits);
          */
          static void BitToByte(char *Out, const bool *In, int bits);// 位组转换成字节组
      
      };
      //
      //
      #endif

      #include "memory.h"
      #include "Des.h"
      
      //
      
      // initial permutation IP
      const static char IP_Table[64] = {
          58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4,
          62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8,
          57, 49, 41, 33, 25, 17,  9, 1, 59, 51, 43, 35, 27, 19, 11, 3,
          61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7
      };
      // final permutation IP^-1 
      const static char IPR_Table[64] = {
          40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31,
          38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29,
          36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27,
          34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41,  9, 49, 17, 57, 25
      };
      // expansion operation matrix
      static const char E_Table[48] = {
          32,  1,  2,  3,  4,  5,  4,  5,  6,  7,  8,  9,
           8,  9, 10, 11, 12, 13, 12, 13, 14, 15, 16, 17,
          16, 17, 18, 19, 20, 21, 20, 21, 22, 23, 24, 25,
          24, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32,  1
      };
      // 32-bit permutation function P used on the output of the S-boxes 
      const static char P_Table[32] = {
          16, 7, 20, 21, 29, 12, 28, 17, 1,  15, 23, 26, 5,  18, 31, 10,
          2,  8, 24, 14, 32, 27, 3,  9,  19, 13, 30, 6,  22, 11, 4,  25
      };
      // permuted choice table (key) 
      const static char PC1_Table[56] = {
          57, 49, 41, 33, 25, 17,  9,  1, 58, 50, 42, 34, 26, 18,
          10,  2, 59, 51, 43, 35, 27, 19, 11,  3, 60, 52, 44, 36,
          63, 55, 47, 39, 31, 23, 15,  7, 62, 54, 46, 38, 30, 22,
          14,  6, 61, 53, 45, 37, 29, 21, 13,  5, 28, 20, 12,  4
      };
      // permuted choice key (table) 
      const static char PC2_Table[48] = {
          14, 17, 11, 24,  1,  5,  3, 28, 15,  6, 21, 10,
          23, 19, 12,  4, 26,  8, 16,  7, 27, 20, 13,  2,
          41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48,
          44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32
      };
      // number left rotations of pc1 
      const static char LOOP_Table[16] = {
          1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1
      };
      // The (in)famous S-boxes 
      const static char S_Box[8][4][16] = {
          // S1 
          14,     4,    13,     1,  2, 15, 11,  8,  3, 10,  6, 12,  5,  9,  0,  7,
           0, 15,  7,  4, 14,  2, 13,  1, 10,  6, 12, 11,  9,  5,  3,  8,
           4,  1, 14,  8, 13,  6,  2, 11, 15, 12,  9,  7,  3, 10,  5,  0,
          15, 12,  8,  2,  4,  9,  1,  7,  5, 11,  3, 14, 10,  0,  6, 13,
          // S2 
          15,  1,  8, 14,  6, 11,  3,  4,  9,  7,  2, 13, 12,  0,  5, 10,
           3, 13,  4,  7, 15,  2,  8, 14, 12,  0,  1, 10,  6,  9, 11,  5,
           0, 14,  7, 11, 10,  4, 13,  1,  5,  8, 12,  6,  9,  3,  2, 15,
          13,  8, 10,  1,  3, 15,  4,  2, 11,  6,  7, 12,  0,  5, 14,  9,
          // S3 
          10,  0,  9, 14,  6,  3, 15,  5,  1, 13, 12,  7, 11,  4,  2,  8,
          13,  7,  0,  9,  3,  4,  6, 10,  2,  8,  5, 14, 12, 11, 15,  1,
          13,  6,  4,  9,  8, 15,  3,  0, 11,  1,  2, 12,  5, 10, 14,  7,
           1, 10, 13,  0,  6,  9,  8,  7,  4, 15, 14,  3, 11,  5,  2, 12,
          // S4 
           7, 13, 14,  3,  0,  6,  9, 10,  1,  2,  8,  5, 11, 12,  4, 15,
          13,  8, 11,  5,  6, 15,  0,  3,  4,  7,  2, 12,  1, 10, 14,  9,
          10,  6,  9,  0, 12, 11,  7, 13, 15,  1,  3, 14,  5,  2,  8,  4,
           3, 15,  0,  6, 10,  1, 13,  8,  9,  4,  5, 11, 12,  7,  2, 14,
          // S5 
           2, 12,  4,  1,  7, 10, 11,  6,  8,  5,  3, 15, 13,  0, 14,  9,
          14, 11,  2, 12,  4,  7, 13,  1,  5,  0, 15, 10,  3,  9,  8,  6,
           4,  2,  1, 11, 10, 13,  7,  8, 15,  9, 12,  5,  6,  3,  0, 14,
          11,  8, 12,  7,  1, 14,  2, 13,  6, 15,  0,  9, 10,  4,  5,  3,
          // S6 
          12,  1, 10, 15,  9,  2,  6,  8,  0, 13,  3,  4, 14,  7,  5, 11,
          10, 15,  4,  2,  7, 12,  9,  5,  6,  1, 13, 14,  0, 11,  3,  8,
           9, 14, 15,  5,  2,  8, 12,  3,  7,  0,  4, 10,  1, 13, 11,  6,
           4,  3,  2, 12,  9,  5, 15, 10, 11, 14,  1,  7,  6,  0,  8, 13,
          // S7 
           4, 11,  2, 14, 15,  0,  8, 13,  3, 12,  9,  7,  5, 10,  6,  1,
          13,  0, 11,  7,  4,  9,  1, 10, 14,  3,  5, 12,  2, 15,  8,  6,
           1,  4, 11, 13, 12,  3,  7, 14, 10, 15,  6,  8,  0,  5,  9,  2,
           6, 11, 13,  8,  1,  4, 10,  7,  9,  5,  0, 15, 14,  2,  3, 12,
          // S8 
          13,  2,  8,  4,  6, 15, 11,  1, 10,  9,  3, 14,  5,  0, 12,  7,
           1, 15, 13,  8, 10,  3,  7,  4, 12,  5,  6, 11,  0, 14,  9,  2,
           7, 11,  4,  1,  9, 12, 14,  2,  0,  6, 10, 13, 15,  3,  5,  8,
           2,  1, 14,  7,  4, 10,  8, 13, 15, 12,  9,  0,  3,  5,  6, 11
      };
      
      //
      // Code starts:
      //
      Des::Des()
      {
      
      }
      Des::~Des()
      {
      
      }
      bool Des::Des_Go(char *Out, char *In, long datalen, const char *Key, int keylen, bool Type)
      {
          if( !( Out && In && Key && (datalen=(datalen+7)&0xfffffff8) ) ) 
              return false;
          SetKey(Key, keylen);
          if( !Is3DES ) {   // 1次DES
              for(long i=0,j=datalen>>3; i<j; ++i,Out+=8,In+=8)
                  DES(Out, In, &SubKey[0], Type);
          } else{   // 3次DES 加密:加(key0)-解(key1)-加(key0) 解密::解(key0)-加(key1)-解(key0)
              for(long i=0,j=datalen>>3; i<j; ++i,Out+=8,In+=8) {
                  DES(Out, In,  &SubKey[0], Type);
                  DES(Out, Out, &SubKey[1], !Type);
                  DES(Out, Out, &SubKey[0], Type);
              }
          }
          return true;
      }
      void Des::SetKey(const char* Key, int len)
      {
          memset(deskey, 0, 16);
          memcpy(deskey, Key, len>16?16:len);
          SetSubKey(&SubKey[0], &deskey[0]);
          Is3DES = len>8 ? (SetSubKey(&SubKey[1], &deskey[8]), true) : false;
      }
      void Des::DES(char Out[8], char In[8], const PSubKey pSubKey, bool Type)
      {
          static bool M[64], tmp[32], *Li=&M[0], *Ri=&M[32];
          ByteToBit(M, In, 64);
          Transform(M, M, IP_Table, 64);
          if( Type == ENCRYPT ){
              for(int i=0; i<16; ++i) {
                  memcpy(tmp, Ri, 32);
                  F_func(Ri, (*pSubKey)[i]);
                  Xor(Ri, Li, 32);
                  memcpy(Li, tmp, 32);
              }
          }else{
              for(int i=15; i>=0; --i) {
                  memcpy(tmp, Li, 32);
                  F_func(Li, (*pSubKey)[i]);
                  Xor(Li, Ri, 32);
                  memcpy(Ri, tmp, 32);
              }
          }
          Transform(M, M, IPR_Table, 64);
          BitToByte(Out, M, 64);
      }
      
      void Des::F_func(bool In[32], const bool Ki[48])
      {
          static bool MR[48];
          Transform(MR, In, E_Table, 48);
          Xor(MR, Ki, 48);
          S_func(In, MR);
          Transform(In, In, P_Table, 32);
      }
      void Des::S_func(bool Out[32], const bool In[48])
      {
          for(char i=0,j,k; i<8; ++i,In+=6,Out+=4) {
              j = (In[0]<<1) + In[5];
              k = (In[1]<<3) + (In[2]<<2) + (In[3]<<1) + In[4];
              ByteToBit(Out, &S_Box[i][j][k], 4);
          }
      }
      void Des::Transform(bool *Out, bool *In, const char *Table, int len)
      {
          for(int i=0; i<len; ++i)
              Tmp[i] = In[ Table[i]-1 ];
          memcpy(Out, Tmp, len);
      }
      void Des::Xor(bool *InA, const bool *InB, int len)
      {
          for(int i=0; i<len; ++i)
              InA[i] ^= InB[i];
      }
      void Des::RotateL(bool *In, int len, int loop)
      {
          memcpy(Tmp, In, loop);
          memcpy(In, In+loop, len-loop);
          memcpy(In+len-loop, Tmp, loop);
      }
      void Des::ByteToBit(bool *Out, const char *In, int bits)
      {
          for(int i=0; i<bits; ++i)
              Out[i] = (In[i>>3]>>(i&7)) & 1;
      }
      void Des::BitToByte(char *Out, const bool *In, int bits)
      {
          memset(Out, 0, bits>>3);
          for(int i=0; i<bits; ++i)
              Out[i>>3] |= In[i]<<(i&7);
      }
      //
      // Code ends.
      //

    展开全文
  • 5月11日,绿盟科技威胁响应中心接报乌云通告,工商银行安全控件可导致远程任意代码执行漏洞(WooYun-2015-96339),考虑到互联网金融当前存在较多的安全性问题 ,并考虑到该漏洞涉及到支付宝安全控件,可能的影响面...

    5月11日,绿盟科技威胁响应中心接报乌云通告,工商银行安全控件可导致远程任意代码执行漏洞(WooYun-2015-96339),考虑到互联网金融当前存在较多的安全性问题 ,并考虑到该漏洞涉及到支付宝安全控件,可能的影响面较大,故迅速展开应急响应工作。


    ​背景信息

    该问题起源于乌云平台对工商银行控件安全问题的一处通报,通报指出,该银行的网银控件会降低网银用户电脑中的安全配置(该配置存在于IE浏览器中)。当这台被降低的电脑访问常规条件下的可信网站时,会执行可信网站要求的任意命令,如果该漏洞被攻击者利用,很容易构造跨站攻击,在用户的电脑上执行任意代码。

    危害程度

    通俗来说,这个问题可以理解为一台“漏洞放大器”,它自己可能不会造成特严重的危害,但配合上其他漏洞,会放大其他漏洞造成的危害,可以预见的危害有以下几项:

    • 该漏洞涉及网银登录页面,以及可能涉及较为及常见的信任网站(比如淘宝、支付宝等),两者的共同用户很多,可能被攻击的范围较大,危害较大;

    • 网银出于兼容性及可用性的考虑,可能会降低IE安全性设置,由此动作带来的错误设置可能存在于多家银行;

    • 该漏洞是由于网银控件的错误设置,允许在浏览受信任网站时执行任意代码,且没有任何提示,这提升了跨站攻击的威胁程度,用户可能更容易受到伤害;

    • XSS跨站攻击本身存在易传播性,配合其他漏洞进行组合攻击,将会进一步扩大影响范围

    分析步骤

    检测方法

     为有效应对此漏洞,建议用户尽快通过如下方法检测自己是否已经受到影响。

    查看IE浏览器安全设置

    • “启动IE浏览器,找到并点击“工具菜单”- “Internet选项”

    • 在随后出现的对话框中,点选安全标签页

    •  在下面第一个窗口中点击“可信站点”图标


    检查可信站点区域安全级别

    选择该选项后,如果发现红框中的安全级别为“中”,则表明自己所使用的网银控件不存在类似问题,下图是安全情况的样例图。

     

    选择该选项后,如果发现红框中的安全级别为“自定义”,则需要通过如下步骤进一步确定问题:

    • 点击“自定义级别”按钮

    • 在新弹出的对话框查看“对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本”这一项

    • 如果选择项为“启用”,则表明存在相应问题


    下图是存在安全风险的样例图:

    可能的利用方法

    通过上面的分析可以看到,此次漏洞的关键在于这个控件错误的设置,打开了“对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本“选项,从而允许执行任意Javascript代码,那么一个典型的XSS跨站攻击可能是这样的:

    • 构造一个恶意脚本并将其嵌入URL中,发送给被攻击者

    • 被攻击者打开URL,看到还是银行官网,乃至信任域内的任意网站,比如*.taobao.com

    • 本来这个脚本在本地会受到IE的安全设置的限制无法在执行,默认设置为中级以上

    • 但由于安全控件打开了这道门,恶意脚本已经在后台执行了

    • 那么该脚本完全可能在后台下载木马,进而窃取用户的敏感信息,包括授权、信用卡、账号信息等

     

    如果该URL进一步扩散,无论给用户的切身利益,还是对银行的声誉,带来的危害是极其严重的;如果信任域内的网站沦陷,可导致访问该网站的所有用户被挂马,同样是一个一次攻击危害放大的效果。

     

    在《2014绿盟科技互联网金融安全报告》中可以看到,在各种常规漏洞中,XSS是出现频率最多的漏洞类型,占到了13%

    。其中主要包括反射型XSS和存储型XSS。跨站脚本漏洞可能会导致网页挂马、用户权限被盗用、钓鱼攻击等多种安全风险。

    分析结果汇总

    通过上面的分析可以看到,该漏洞可能提升现有漏洞的威胁程度,进而引起大规模网页挂马事件,其危害性极为严重,所以绿盟科技技术人员第一时间对8家银行页面进行了检测,发现工商银行存在控件安全性问题,各行页面详细检测情况截图详见附录。

     

    银行网银页面安全控件分析结果

    工行网银存在控件安全性问题

    控件所属银行      问题存在情况

    中国银行            无问题

    农业银行            无问题

    中国建设银行     无控件 无问题

    中国工商银行     存在

    招商银行            无问题

    民生银行            无问题

    兴业银行            无控件 无问题


     

    紧急应对方法

    给银行方面的建议

    对自己所属银行的控件进行安装审计(审计方法参考检测方法章节),如发现其修改了IE的安全配置,证明该控件存在类似问题。此时应当联系己方开发人员,取消这一修改配置的功能,并发布新版本控件。如控件自身功能有修改IE的安全配置的需求,也要借助其他功能等价编码实现进行该问题规避,重构后发布新版本控件。

    给网银用户的建议

    普通用户可以先检查自己的浏览器是否存在类似问题,检查方法同样参考检测方法的章节。

    如发现自己的控件存在问题,则应将电脑的IE选项手动修复为默认级别(点击“默认级别”这个按钮即可--------在“自定义级别”旁边)。此后,当银行发布新版本控件时,再进行控件更新即可。


    威胁情报

    为及时有效的应对各类网络安全事件,绿盟科技一直与各安全机构保持密切合作,包括乌云及CNCert国家互联网应急中心。从此次安全事件的传播情况可以看到,无论其原理怎样,无论防护方案如何实施,关键在于尽可能快的了解到漏洞信息及相关的情报,以便尽可能快的启动应急响应机制。这无论对于解决传统安全或者APT攻击来说都是重要的手段之一,威胁情报的获取及响应都体现了防御能力的建设程度,威胁情报服务体系至少包含了威胁监测及响应、数据分析及整理、业务情报及交付、风险评估及咨询、安全托管及应用等各个方面,涉及研究、产品、服务、运营及营销的各个环节,绿盟科技通过研究、云端、产品、服务等立体的应急响应体系,向企业和组织及时提供威胁情报并持续进行后续服务,保障客户业务的顺畅运行。

    如果您对我们提供的内容有任何疑问,或者需要了解更多的信息,可以随时通过在微博、微信中搜索绿盟科技联系我们,欢迎您的垂询!

    [1]

     乌云,http://wooyun.org/bugs/wooyun-2010-096339

    [2]

    2014绿盟科技互联网金融安全报告,http://www.nsfocus.com.cn/report/2014 NSFOCUS Internet Finance Security Report.pdf

    展开全文
  • 基于chrome、edge、Firefox等主流浏览器相继抛弃npapi和ActiveX技术,根据国内网银的使用现状,本文主要就国内网银控件升级问题进行探讨研究,打通了chrome上开发网银控件的技术障碍,初步实现了一个可以保护用户...
  • ![图片说明](https://img-ask.csdn.net/upload/201805/09/1525829903_616327.jpg)
  • 中国银行网上银行安全控件,中国银行网上银行安全控件
  • 我的浏览器中别的网银安全控件都是好用的,但只有招行的不行。安全控件始终无法显示。请问各位大侠们有没有遇到过这个问题?
  • 西安银行网上银行安全控件IE版是一款由西安银行股份有限公司专为广大用户推出的一款网银安全程序,当您在登陆西安银行网上银行前需要先安装西安银行网上银行控件,否则将无法正常使用,西安银行网上银行安全控件可以...
  • 江苏省农信网上银行安全控件
  • 计算机网络安全相关
  • 网络-计算机-安全相关
  • 阳泉市商业银行网银控件,这个控件是很多网上银行通用的,城市商业银行资金清算套件,大家可以...清理浏览器内存后再安装 功能介绍修复“无法加载安全控件”问题 修复“网银密码控件安装失败”问题 增强网上银行安全
  • 安装方法1、首先关闭正在运行的浏览器 2、打开安装文件 3、点击安装读条完成 4、如果安装失败,清理浏览器内存后再安装 功能介绍修复“无法加载安全控件”问题 修复“网银密码控件安装失败”问题 增强网上银行安全

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,780
精华内容 1,512
关键字:

下载网银安全控件