Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
github.com/kevinxc5/gmssl
GmSSL is an open source cryptographic toolkit that provide first level support of Chinese national cryptographic algorithms and protocols which are specified in the GM/T serial standards. As a branch of the OpenSSL project, GmSSL provides API level compatibility with OpenSSL and maintains all the functionalities. Existing projects such as Apache web server can be easily ported to GmSSL with minor modification and a simple rebuild. Since the first release in late 2014, GmSSL has been selected as one of the six recommended cryptographic projects by Open Source China and the winner of the 2015 Chinese Linux Software Award.
GmSSL will support all the following GM/T cryptographic algorithms:
sm2p256v1
.GmSSL supports many useful cryptographic algorithms and schemes:
OpenSSL algorithms such as ECDSA, RSA, AES, SHA-1 are all still available in GmSSL.
The GM/T standards cover 2 protocols:
The GM/T 0024-2014 SSL VPN protocol is different from IETF TLS in the follows aspects:
GM/T 0024-2014 Ciphersuites:
1. {0xe0,0x01} GMTLS_SM2DHE_SM2SIGN_WITH_SM1_SM3
2. {0xe0,0x03} GMTLS_SM2ENC_WITH_SM1_SM3
3. {0xe0,0x05} GMTLS_SM9DHE_SM9SIGN_WITH_SM1_SM3
4. {0xe0,0x07} GMTLS_SM9ENC_WITH_SM1_SM3
5. {0xe0,0x09} GMTLS_RSA_WITH_SM1_SM3
6. {0xe0,0x0a} GMTLS_RSA_WITH_SM1_SHA1
7. {0xe0,0x11} GMTLS_SM2DHE_SM2SIGN_WITH_SMS4_SM3
8. {0xe0,0x13} GMTLS_SM2ENC_WITH_SMS4_SM3
9. {0xe0,0x15} GMTLS_SM9DHE_SM9SIGN_WITH_SMS4_SM3
10. {0xe0,0x17} GMTLS_SM9ENC_WITH_SMS4_SM3
11. {0xe0,0x19} GMTLS_RSA_WITH_SMS4_SM3
12. {0xe0,0x1a} GMTLS_RSA_WITH_SMS4_SHA1
GmSSL supports the standard TLS 1.2 protocol with SM2/SM3/SM4 ciphersuites and the GM/T SSL VPN protocol and ciphersuites. Currently the following ciphersuites are supported:
ECDHE-SM2-WITH-SMS4-SM3
ECDHE-SM2-WITH-SMS4-SHA256
Except for the native C interface and the gmssl
command line, GmSSL also provide the following interfaces:
This short guide describes the build, install and typical usage of the gmssl
command line tool. Visit http://gmssl.org for more documents.
Download (GmSSL-master.zip), uncompress it and go to the source code folder. On Linux and OS X, run the following commands:
$ ./config
$ make
$ sudo make install
After installation you can run gmssl version -a
to print detailed information.
The gmssl
command line tool supports SM2 key generation through ecparam
or genpkey
option, supports SM2 signing and encryption through pkeyutl
option, supports SM3 through sm3
or dgst
option, and supports SM4 through sms4
or enc
option.
The following are some examples.
SM3 digest generation:
$ echo -n "abc" | gmssl sm3
(stdin)= 66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0
SM4 encryption and decryption:
$ gmssl sms4 -in README.md -out README.sms4
$ gmssl sms4 -d -in README.sms4
ZUC/ZUC256 encryption and decryption:
$ gmssl zuc -in README.md -out README.zuc
$ gmssl zuc -d -in README.zuc
$ gmssl zuc256 -in README.md -out README.zuc256
$ gmssl zuc256 -d -in README.zuc256
SM2 private key generation:
$ gmssl sm2 -genkey -out skey.pem
Derive the public key from the generated SM2 private key:
$ gmssl sm2 -pubout -in skey.pem -out vkey.pem
SM2 signature generation and verification:
$ gmssl sm2utl -sign -in README.md -inkey skey.pem -out README.md.sig
$ gmssl sm2utl -verify -in README.md -pubin -inkey vkey.pem -sigfile README.md.sig
Generate SM2 encryption key pair and do SM2 public key encyption/decryption. It should be noted pkeyutl -encrypt
should only be used to encrypt short messages such as session key and passphrase.
$ gmssl sm2 -genkey -out dkey.pem
$ gmssl sm2 -pubout -in dkey.pem -out ekey.pem
$ echo "Top Secret" | gmssl sm2utl -encrypt -pubin -inkey ekey.pem -out ciphertext.sm2
$ gmssl sm2utl -decrypt -inkey dkey.pem -in ciphertext.sm2
Identity-based encryption with SM9
$ echo "Message" | gmssl pkeyutl -encrypt -pubin -inkey params.pem -pkeyopt id:Alice -out ciphertext.der
$ gmssl pkeyutl -decrypt -inkey sm9key.pem -in ciphertext.der
Self-signed SM2 certificate generation:
$ gmssl req -new -x509 -key skey.pem -out cert.pem
TLS/DTLS with SM2 ciphersuites:
$ gmssl s_server [-tls1_2|-dtls1_2] -port 443 -cipher SM2 -key sm2key.pem -cert sm2cert.pem &
$ gmssl s_client [-tls1_2|-dtls1_2] -connect localhost:443 -cipher SM2 -CAfile cacert.pem
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.