作者: hetao

  • securefx中文文件名乱码

    打开以下目录

    %userprofile%\appdata\roaming\vandyke\config\Sessions

    找到对应会话的配配置文件

    在配置文件中找到Filenames Always Use UTF8,然后修改其值为00000001

    Views: 11

  • 国内主要IPv6前缀

    • 2409开头的

      2409:6000::/20 吉利 2020-10-22
      2409:8000::/20 中国移动 2011-08-23
      2409:2000::/21 华为 2020-07-20

    • 2408开头的

      2408:4000::/22 阿里巴巴 2015-12-21
      2408:8000::/22 中国联通 2011-07-07
      2408:8400::/22 中国联通 2012-05-31
      2408:8800::/21 中国联通 2012-05-31
      这3个段是分3次申请的,可以合并为2408:8000::/20

    • 240a开头的

      240a:2000::/24 北京光环新网 2020-11-03
      240a:4000::/21 广电 2017-12-29
      240a:6000::/24 水利部 2021-01-14
      240a:8000::/21 铁通 2013-01-30 现为中国移动所有
      240a:a000::/20 未来互联网试验设施,简称FITI 2021-04-01
      240a:c000::/20 中国石油 2018-08-20

    • 240e开头的

      240e::/24 中国电信 2010-05-20
      240e:100::/24 中国电信 2011-12-14
      240e:200::/23 中国电信 2011-12-14
      240e:400::/22 中国电信 2011-12-14
      240e:800::/21 中国电信 2011-12-14
      240e:1000::/20 中国电信 2018-12-27
      240e:2000::/19 中国电信 2018-12-27
      以上几个段聚合为240e::/18

    • 其它

      240c:c000::/20 教育网 CERNET2 2019-01-29 AS23910
      240b:6000::/20 字节跳动 2022-10-20
      240b:2000::/22 国家石油天然气管网集团有限公司 2021-11-24
      240b:8000::/21 电子政务网 2013-08-16
      240c:8000::/21 中国石油 2014-09-05
      240d:4000::/21 赛尔网络下一代互联网商用网 2019-02-03 AS133111,其实就是教育网推出的商业网络
      240c:4000::/22 百度 2018-11-13
      240d:8000::/24 北京国科云计算技术有限公司 2015-02-05
      240f:4000::/24 腾讯 2019-07-09
      240f:8000::/24 AMAZON-CN 2015-04-27
      240f:c000::/24 京东 2019-09-17
      2001:4510::/29 长城互联网 2005-08-15
      240c:c000::/20 CERNET2 2019-01-29
      2001:da8::/32 CNGI-CERNET2 2003-11-10
      2001:250::/32 CERNET2主干网 2000-04-26 – 2002-07-26

    • APNIC持有的所有IPv6前缀

      2001:B000::/20
      2001:4400::/23
      2001:0200:/23
      2001:0C00:/23
      2001:0E00:/23
      2001:07FA:/32
      2001:8000::/23
      2001:8200::/23
      2001:8400::/23
      2001:8600::/23
      2001:8800::/23
      2001:8A00::/23
      2001:8C00::/23
      2001:8E00::/23
      2001:9000::/23
      2001:9200::/23
      2001:9400::/23
      2001:9600::/23
      2001:9800::/23
      2001:9A00::/23
      2001:9C00::/23
      2001:9E00::/23
      2001:A000::/23
      2001:A200::/23
      2001:A400::/23
      2001:A600::/23
      2001:A800::/23
      2001:AA00::/23
      2001:AC00::/23
      2001:AE00::/23
      2400:0000::/12
      由此可见亚太地址的前缀主要是2400开头的,少部分是2001开头的,因为2001段的地址数太少,所以使用2001前缀的主要是企业和一些早期的实验网。
      参考:
      https://stat.ripe.net/app/launchpad
      https://ispip.clang.cn/all_cn_ipv6.html
      https://blog.csdn.net/jayjaydream/article/details/123528274

    Views: 16

  • ppa.launchpad.net下载速度慢

    /etc/apt/sources.list.d下找到对应ppa源的配置,把其中的ppa.launchpad.net替换为launchpad.proxy.ustclug.org

    Views: 0

  • openssl集成pkcs#11加密engine

    /etc/ssl/openssl.cnf添加以下配置

    [openssl_init]
    providers = provider_sect
    # Load default TLS policy configuration
    ssl_conf = ssl_module
    alg_section = evp_properties
    pkcs11 = pkcs11_section
    
    [pkcs11_section]
    engine_id = pkcs11
    dynamic_path = /usr/lib64/engines-3/pkcs11.so
    MODULE_PATH = /usr/lib64/opensc-pkcs11.so
    init = 0
    

    编译libp11

    git clone https://github.com/OpenSC/libp11
    cd libp11
    autoreconf -fi
    ./configure --prefix=/usr
    make && make install
    ln -sf /usr/lib64/engines-3/libpkcs11.so /usr/lib64/libpkcs11.so
    

    ubuntu上libp11叫libengine-pkcs11-openssl

    执行openssl engine pkcs11 -t后显示以下内容就对了

    (pkcs11) pkcs11 engine
    [ available ]

    但是我执行这个命令的时候70%的概率会报

    /lib64/libpkcs11.so: undefined symbol: OPENSSL_finish

    不过我用pkcs11生成证书时一直报错

    openssl req -engine pkcs11 -new -keyform engine -key ‘pkcs11:model=PKCS%2315;manufacturer=EnterSafe;serial=2c692c97000a0025;token=OpenSC%20Card;id=%45;object=id_4’ -keyform engine -x509 -out cert.pem -text

    Engine “pkcs11” set.
    PKCS#11: Initializing the engine: (null)
    Unable to load module (null)
    PKCS11_get_private_key returned NULL
    Could not find private key from org.openssl.engine:pkcs11:pkcs11:model=PKCS%2315;manufacturer=EnterSafe;serial=2c692c97000a0025;token=OpenSC%20Card;id=%45;object=id_4
    00CE51640C7F0000:error:41000401:libp11:ERR_P11_error:Unable to load PKCS#11 module:p11_load.c:103:
    00CE51640C7F0000:error:40800067:pkcs11 engine:ERR_ENG_error:invalid parameter:eng_back.c:730:
    00CE51640C7F0000:error:13000080:engine routines:ENGINE_load_private_key:failed loading private key:crypto/engine/eng_pkey.c:79:

    Views: 0

  • 智能卡相关术语

    smard card和hsm(hardware security module)本质上一种东西,只是不同的行业叫法不一样。都是通过芯片卡或集成电路提供安全功能。

    相关名词:

    • PKCS#11

      也叫作Cryptoki,是RSA实验室最初发布,现已为OASIS标准。它定义了智能卡与应用程序之间的编程接口。PKCS#11主要在Linux上使用的比较多。

    • CAPI和CNG

      Cryptographic Application Programming Interface也叫作CryptoAPI,Microsoft Cryptography API, MS-CAPI。由Windows NT 4.0引入,作为Cryptographic Service Provider的编程接口。
      CNG的全称是Cryptography API: Next Generation,是由Windows Vista中引入,作为CAPI的升级,在CNG中把provider分为了Key storage provider和Cryptographic Algorithm Providers,前者进行密钥创建,存储及签名,后者提供加密算法。CNG提供了ECC等现代算法的支持,还支持硬件加密模块(HSM,Smard Card)。

    • Cryptographic Service Provider(CSP)/Key storage provider(KSP)/Cryptographic Algorithm Providers(CAP)

      Cryptographic Service Provider是CAPI的实现库,同时提供密钥管理和加解密功能,不支持ECC算法。
      Key storage provider(KSP)为CNG提供密创建和存储功能,默认情况下导入的私钥会保存在Microsoft Software Key Storage Provider中,如果需要指定KSP,则要用certutil命令。
      Cryptographic Algorithm Providers(CAP)为CNG提供加密解功能

      关于CSP/KSP参考:https://www.gradenegger.eu/en/basics-cryptographic-service-provider-csp-and-key-storage-provider-ksp/

    • Microsoft Base Smart Card Cryptographic Service Provider

      这是一个基于CAPI接口的CSP,所以同样不支持ECC算法,用于与Smard Card/HSM交互,它提供了相当于PKCS#11的功能。
      示意图

    • miniDriver

      Microsoft Base Smart Card Cryptographic Service Provider通过miniDriver与Smard Card进行交互,把来自Microsoft Base Smart Card Cryptographic Service Provider的请求转发给Smard Card。
      Smard Card也可以直接实现CSP,KSP,CAP,而不是通过Microsoft Base Smart Card Cryptographic Service Provider中转请求,但是这样对硬件厂商来说会增加成本。miniDriver是为了降低硬件厂商开发CSP的成本。

    • PC/SC (short for Personal Computer/Smart Card)

      是智能卡读卡器与计算机通迅的语义接口,最早为Windows上实现,后来Linux和MacOS也提供了对应的实现。
      WinSCard智能卡函数

    • CCID/ICCD

      CCID (chip card interface device)是芯片卡设备,用于USB读卡器
      ICCD (Integrated Circuit(s) Card Devices),俗称IC卡,用于USB读卡器
      这两种卡都可以通过PC/SC协议通迅

    • FIPS 140

      美国联邦信息处理标准FIPS(Federal Information Processing Standard)是一种针对密码算法模块的安全标准,通过部署FIPS功能,能够提升设备的安全性能。
      FIPS是由美国国家标准和技术研究院制定,由美国商务部批准的针对密码算法安全的标准,它规定了一个安全系统中的密码算法模块应该满足的安全性要求。FIPS 140是FIPS系列标准中针对密码算法模块的安全标准,是进行密码算法模块评测认证的基础标准,共分Level1, Level2, Level3三个等级。
      FIPS 140–2表示的就是FIPS 140 Level 2

    • FIDO(U2F,UAF)

      U2F(Universal 2nd Factor)和UAF(Universal Authentication Framework)是FIDO开发的第一代身份验证标准。
      U2F提供双因素身份验证,但不支持生物识别和无密码认证,主要用于银行。
      UAF提供无密码认证和生物认证

    • FIDO2

      FIDO2是FIDO开发的第二代身份验证标准,是对FIDO(U2F,UAF)的扩展,可以支持单因素和多因素身份验证,也支持无密码和生物识别。FIDO2由WebAuthn和CTAP组成,支持Web应用和本地应用的无密码和多因素身份验证。

    • OTP,HOTP,TOTP

      OTP 是 One-Time Password的简写,表示一次性密码。
      HOTP 是HMAC-based One-Time Password的简写,表示基于HMAC算法加密的一次性密码。
      TOTP 是Time-based One-Time Password的简写,表示基于时间戳算法的一次性密码。
      Yubico OTP,可以在每次触摸yubikey按钮时从键盘键盘一串密码
      Yubico Authenticator可以支持HOTP,TOTP,并与yubikey集成。其实就是提供硬件支持的Gooogle Authenticator,需要在手机或电脑上下载Yubico Authenticator应用。

    • PIV(Personal Identity Verification)

      PIV的规范由FIPS 201定义(2005年),主要用于智能卡身份认证,比如这种门禁卡门禁卡
      当用于Windows登录时则需要提供对应的智能卡CSP,在Linux上用于登录时需要提供PKCS#11接口。

    • OpenPGP

      是一个加密标准,主要用于签名和加密文件,也可以用于签名和加密电子邮件,在Linux上广泛使用。
      OpenPGP也支持使用使用智能卡进行加密,称为OpenPGP card,使用ISO/IEC 7816标准,但是OpenPGP Card只实现了ISO/IEC 7816-4/-8的子集,比PIV卡定义的还要早,一般长这样
      OpenPGP card
      SIM卡
      当然使用的时候是需要读卡器的。

    • OpenSSH

      ssh命令可以通过-I选项指定PKCS#11库来支持智能卡加密,使用PKCS#11时需要使用证书认证。

    Views: 0

  • openssl req生成证书

    • 生成自签名CA证书

      openssl req -x509 -newkey rsa:2048 -keyout ca-key.pem -out ca.pem -noenc

    • 生成证书请求

      openssl req -newkey rsa:2048 -keyout key.pem -out req.pem -noenc

    • 签名证书

      openssl req -x509 -CA ca.pem -CAkey ca-key.pem -in req.pem -copy_extensions copy -out c.pem

    Views: 0

  • OpenSSL FAQ

    • openssl req命令中-key 和 -keyout一起使用时keyout的内容

      keyout的内容与key的输入是一样的

    • openssl req命令中x509v1选项何时生效

      如果使用了扩展则一定会使用V3版本(也就是使用扩展时该选项不生效)。根据我测试的情况openssl3.2以上版本才有此选项,如果想使该选项生效需要指定extensions为空的openssl配置文件(默认配置是有extensions的)

    • openssl x509命令中-extfile选项指定的文件需要指定section name吗

      不需要,会从default section中读取扩展配置

    • copy_extensions选项copy和copyall选项的区别

      copyall会覆盖ca上的现有扩展配置,copy不会

    Views: 0

  • nexus报Nexus was not configured with an encryption key and is using the Default key

    • 创建一个json文件

      data/nexus-key.json

      {
        "active": "my-key",
        "keys": [
          {
            "id": "my-key",
            "key": "some-secret-key"
          }
        ]
      }
      

      把上面的id和key改成自己的

    • 修改nexus的docker-compose.yaml配置

        nexus:
          image: sonatype/nexus3
          restart: always
          volumes:
            - ./data/nexus:/nexus-data
            - ./data/nexus-deploy:/opt/sonatype/nexus/deploy
            - ./data/nexus-key.json:/opt/nexus-key.json
          environment:
            - "NEXUS_SECRETS_KEY_FILE=/opt/nexus-key.json"
      

      执行docker compose up -d

    • 修改生成的key

      打开System > API > Security Management: Secrets Encryption
      点击Try it out,body中输入以下内容

      {
        "secretKeyId": "my-key"
      }
      

      secretKeyId修改为自己的
      最后点击Execute
      也可以直接调用curl命令

      curl -X 'PUT' \
        'https://<your-instance-url>/service/rest/v1/secrets/encryption/re-encrypt' \
        -H 'accept: application/json' \
        -H 'Content-Type: application/json' \
        -H 'NX-ANTI-CSRF-TOKEN: <any-token>' \
        -H 'X-Nexus-UI: true' \
        -d '{
        "secretKeyId": "string",
        "notifyEmail": "string"
      }'
      

    参考:
    https://help.sonatype.com/en/re-encryption-in-nexus-repository.html

    Views: 0

  • powerdns recursor 配置文件转换到yaml格式

    rec_control show-yaml > recursor.yaml
    或者
    rec_control show-yaml path/to/recursor.conf > recursor.yaml

    从recursor5.2开始默认读取yaml格式的配置而不是conf格式。

    Views: 0

  • mysql清除binlog日志压缩磁盘空间

    RESET BINARY LOGS AND GTIDS;
    SHOW BINARY LOGS;
    

    Views: 0