$ pip install cryptolyzer $ docker pull coroner/cryptolyzer
A futtatás ezek után a következőképp történik.
$ cryptolyze tls all www.github.com $ cryptolyze ssh2 ciphers www.github.com $ cryptolyze http headers www.securityheaders.com $ docker run --rm coroner/cryptolyzer tls all www.github.com $ docker run --rm coroner/cryptolyzer ssh2 ciphers www.github.com $ docker run --rm coroner/cryptolyzer http headers www.securityheaders.com
A paraméterezés részletei megtudhatóak a helpből:
$ cryptolyze --help $ cryptolyze tls --help $ cryptolyze tls1_2 --help $ cryptolyze tls1_2 ciphers --help
Választható Markdown (default), vagy JSON kimenet, emberi, illetve gépi fogyasztásra, bár utóbbira Pythonból való használat kényelmesebb lehet. A jövőbeni tervek között számos dolog szerepel, amik közül több kisebb fejlesztést az összehasonlító táblázatok is tartalmaznak. A tervezett funkciók közül az SSH publikus kulcsok (nem csak host key, hanem host és X,509 cert is), illetve a DNS rekordok (SPF, DKIM, DMARC, MTA-STS, TLSRPT, ...) lekérdezését és analízisét, valamint a naplózást emelném ki. Az ezekhez kapcsoló jegyek a GitLab projekten követhetőek.
Minden (konstruktív) kérdést, javaslatot észrevételt szívesen veszek és előre köszönök! A hasonló projektekkel való összehasonlítást az alábbi táblázatok tartalmazzák. A táblázatok tartalma természetesen elég önkényes, de azért igyekeztem amennyire lehet objektívitás talaján maradni.
Összehasonlítás
CryptoLyzer “specialitások”
CryptoLyzer | Qualys
SSL Labs |
ImmuniWeb | Mozilla
Observatory |
CryptCheck | Testssl.sh | SSLyze | |
TLS 1.3 Draft | ✔ | ✘ | ✘ | ✘ | ✘ | ✔ | ✘ |
TLS 1.3 DH Param | ✔ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ |
GOST Ciphers | ✔ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ |
DH Param Prime Check | ✔ | ✔ | ✘ | ✘ | ✘ | ✘ | ✘ |
DHE Param Reuse Check | ✔ | ✔ | ✘ | ✘ | ✘ | ✘ | ✘ |
ECDH Param Reuse Check | 0.9.0 | ✔ | ✘ | ✘ | ✘ | ✘ | ✘ |
83% | 50% | 0% | 0% | 0% | 17% | 0% |
(Start)TLS protokoll támogatás
CryptoLyzer | Qualys
SSL Labs |
ImmuniWeb | Mozilla
Observatory |
CryptCheck | Testssl.sh | SSLyze | |
FTP | ✔ | ✘ | ✘ | ✘ | ✘ | ✔ | ✔ |
IMAP | ✔ | ✘ | ✘ | ✘ | ✘ | ✔ | ✔ |
LDAP | ✔ | ✘ | ✘ | ✘ | ✘ | ✘ | ✔ |
LMTP | ✔ | ✘ | ✘ | ✘ | ✘ | ✔ | ✘ |
MySQL | 0.9.0 | ✘ | ✘ | ✘ | ✘ | ✔ | ✘ |
NNTP | ✔ | ✘ | ✘ | ✘ | ✘ | ✔ | ✘ |
POP3 | ✔ | ✘ | ✘ | ✘ | ✘ | ✔ | ✔ |
PostgreSQL | ✔ | ✘ | ✘ | ✘ | ✘ | ✔ | ✔ |
RDP | ✔ | ✘ | ✘ | ✘ | ✘ | ✘ | ✔ |
Sieve | ✔ | ✘ | ✘ | ✘ | ✘ | ✔ | ✘ |
SMTP | ✔ | ✘ | ✔ | ✘ | ✔ | ✔ | ✔ |
XMPP (Jabber) | ✔ | ✘ | ✘ | ✘ | ✔ | ✔ | ✔ |
92% | 0% | 8% | 0% | 17% | 83% | 67% |
Kriptográfiai protokollok
CryptoLyzer | Qualys
SSL Labs |
ImmuniWeb | Mozilla
Observatory |
CryptCheck | Testssl.sh | SSLyze | |
TLS | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
SSH (2.0) | ✔ | ✘ | ✘ | ✔ | ✔ | ✘ | ✘ |
100% |
50% |
50% |
100% |
100% |
50% |
50% |
HTTP Security Headerök
CryptoLyzer | Qualys
SSL Labs |
ImmuniWeb | Mozilla
Observatory |
CryptCheck | Testssl.sh | SSLyze | |
TLS settings | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Content Security Policy | 0.9.0 | ✘ | ✘ | ✔ | ✘ | ✘ | ✘ |
Expect Certificate Transparency | ✔ | ✘ | ✘ | ✔ | ✘ | ✘ | ✘ |
Expect OCSP Staple | ✔ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ |
HTTP Strict | ✔ | ✔ | ✔ | ✔ | ✘ | ✘ | ✘ |
HTTP Public Key | ✔ | ✔ | ✘ | ✔ | ✘ | ✘ | ✘ |
Referrer | ✔ | ✘ | ✘ | ✔ | ✘ | ✘ | ✘ |
Subresource Integrity | 0.8.0 | ✘ | ✘ | ✔ | ✘ | ✘ | ✘ |
X Content Type Options | ✔ | ✘ | ✘ | ✔ | ✘ | ✘ | ✘ |
X Frame | ✔ | ✘ | ✘ | ✔ | ✘ | ✘ | ✘ |
X XSS Protection | ✔ | ✘ | ✘ | ✔ | ✘ | ✘ | ✘ |
82% | 27% | 18% | 91% | 9% | 9% | 9% |
HTTP Általános Headerök
CryptoLyzer | Qualys
SSL Labs |
ImmuniWeb | Mozilla
Observatory |
CryptCheck | Testssl.sh | SSLyze | |
Content-Type | ✔ | ✘ | ✘ | ✔ | ✘ | ✘ | ✘ |
Server | ✔ | ✘ | ✘ | ✔ | ✘ | ✘ | ✘ |
Age | ✔ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ |
Cache-Control | ✔ | ✘ | ✘ | ✔ | ✘ | ✘ | ✘ |
Date | ✔ | ✘ | ✘ | ✔ | ✘ | ✘ | ✘ |
ETag | ✔ | ✘ | ✘ | ✔ | ✘ | ✘ | ✘ |
Expires | ✔ | ✘ | ✘ | ✔ | ✘ | ✘ | ✘ |
Last-Modified | ✔ | ✘ | ✘ | ✔ | ✘ | ✘ | ✘ |
Pragma | ✔ | ✘ | ✘ | ✔ | ✘ | ✘ | ✘ |
100% | 0% | 0% | 89% | 0% | 0% | 0% |
TLS Extensionök
CryptoLyzer | Qualys
SSL Labs |
ImmuniWeb | Mozilla
Observatory |
CryptCheck | Testssl.sh | SSLyze | |
TLS Fallback SCSV | ✔ | ✔ | ✔ | ✘ | ✘ | ✔ | ✔ |
TLS Clock Skew | ✔ | ✘ | ✘ | ✘ | ✘ | ✔ | ✔ |
TLS Compression | ✔ | ✔ | ✔ | ✘ | ✘ | ✘ | ✔ |
Client Initiated Renegotiation | 0.9.0 | ✔ | ✔ | ✘ | ✘ | ✔ | ✔ |
Server Initiated Renegotiation | 0.9.0 | ✔ | ✔ | ✘ | ✘ | ✔ | ✔ |
Session Caching | ✔ | ✔ | ✘ | ✘ | ✘ | ✔ | ✔ |
Session Ticketing | ✔ | ✔ | ✘ | ✘ | ✘ | ✔ | ✔ |
EC Point Format | ✔ | ✘ | ✔ | ✘ | ✘ | ✘ | ✘ |
App. Layer Proto. Negotiation | ✔ | ✔ | ✘ | ✘ | ✘ | ✔ | ✘ |
Next Protocol Negotiation | ✔ | ✔ | ✘ | ✘ | ✘ | ✔ | ✘ |
OCSP Stapling | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ |
OCSP Must Staple | 0.8.0 | ✔ | ✔ | ✘ | ✘ | ✔ | ✔ |
Certificate Transparency | 0.8.0 | ✔ | ✔ | ✘ | ✘ | ✔ | ✔ |
TLS Version Intolerance | 0.8.0 | ✔ | ✘ | ✘ | ✘ | ✘ | ✘ |
TLS Extension Intolerance | 0.8.0 | ✔ | ✘ | ✘ | ✘ | ✘ | ✘ |
Handshake Length Intolerance | 0.8.0 | ✔ | ✘ | ✘ | ✘ | ✘ | ✘ |
56% | 88% | 50% | 6% | 0% | 69% | 63% |
- A hozzászóláshoz be kell jelentkezni
- 1404 megtekintés
Hozzászólások
Szia!
Köszönjük. Nagyon menő! Már jön is le a Docker image.
- A hozzászóláshoz be kell jelentkezni
Amikor megláttam a címet facebookon, már éreztem, hogy valami balabites arc lesz mögötte.
<3 openSUSE, Ubuntu, KDE <3
- A hozzászóláshoz be kell jelentkezni
Még ha ezt manapság úgy is ejtik, hogy balasys. :)
- A hozzászóláshoz be kell jelentkezni
"Mert övé a fél Balaton."
- A hozzászóláshoz be kell jelentkezni
OFF:
Amikor megláttam a címet facebookon
A komment megerősíti, hogy van értelme a social media presence-nek.
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
kafa!
- A hozzászóláshoz be kell jelentkezni
ssh2 (meg kb barmi) eseten a port megadas hogy tortenik?
Error: nmcli terminated by signal Félbeszakítás (2)
- A hozzászóláshoz be kell jelentkezni
Alapvetően URI adható meg minden esetben.
$ cryptolyze ssh2 ciphers --help usage: cryptolyze ssh2 ciphers [-h] URI [URI ...] positional arguments: URI [{ssh}://]f.q.d.n[:port][#ip] optional arguments: -h, --help show this help message and exit
Konkrét példával élve:
$ cryptolyze ssh2 ciphers ssh.blinkenshell.org:2222
- A hozzászóláshoz be kell jelentkezni
Koszi! Felteteleztem, hogy figyelmetlen voltam, be is bizonyosodott... :)
Error: nmcli terminated by signal Félbeszakítás (2)
- A hozzászóláshoz be kell jelentkezni
sub
- A hozzászóláshoz be kell jelentkezni
sub
- A hozzászóláshoz be kell jelentkezni
Néhány javaslat:
1. client certet tudjon felmutatni, és írja ki az acceptable client certificate CA-as listát is (szerk:ez utóbbit tudja is).
Vannak olyan site-ok amiket csak így lehet elérni teszthez.
https://github.com/rbsec/sslscan tudja. :)
2. jó lenne ha lehetne timeoutokat megadni, biztos van most is ,de jó lenne paraméterezhetően ha mass scan-t csinálsz akkor nem árt.
3. bind address megadási lehetőség
- A hozzászóláshoz be kell jelentkezni
- a client certet nem kell tudnia felmutatni, mivel a szükséges információkat anélkül is be tudja szerezni (client-cert-missing.badssl.com oldallal tesztelhető), illetve a pubkeyreq opcióval lekérdezhető, hogy a szerver milyen certet szeretne
- ez teljesen jogos igény, mindenképp felveszem a todo listára
- ez alatt nem tudom mit kellene értenem, esetleg forrásport megadási lehetőséget?
cryptolyze tls1_2 pubkeyreq https://client-cert-missing.badssl.com/ * Target: * Scheme: https * Address: client-cert-missing.badssl.com * IP address: 104.154.89.105 * Port: 443 * Protocol Version: TLS 1.2 * Certificate Types: 1. TlsClientCertificateType.RSA_SIGN 2. TlsClientCertificateType.DSS_SIGN 3. TlsClientCertificateType.ECDSA_SIGN * Supported Signature Algorithms: 1. RSA_SHA512 2. DSA_SHA512 3. ECDSA_SHA512 4. RSA_SHA384 5. DSA_SHA384 6. ECDSA_SHA384 7. RSA_SHA256 8. DSA_SHA256 9. ECDSA_SHA256 10. RSA_SHA224 11. DSA_SHA224 12. ECDSA_SHA224 13. RSA_SHA1 14. DSA_SHA1 15. ECDSA_SHA1 * Distinguished Names: 1. * Country Name: US * State Or Province Name: California * Locality Name: San Francisco * Organization Name: BadSSL * Common Name: BadSSL Untrusted Client Root Certificate Authority $ cryptolyze tls1_2 dhparams https://client.badssl.com/ * Target: * Scheme: https * Address: client.badssl.com * IP address: 104.154.89.105 * Port: 443 * Protocol Version: TLS 1.2 * Diffie-Hellman Parameters: 1. * Key Size: 2048 * Reused: no * Well Known: n/a * Prime: yes * Safe Prime: yes
- A hozzászóláshoz be kell jelentkezni
1. Ezekben igazad van, viszont ha http headers -t akarok lekérdezni mégiscsak kelleni fog a kliens cert..., mert nem megy le a handshake :)
2. köszi :)
3. forrás port annyira nem érdekes, a forrás ip megadására gondolok. lásd wget --bind-address, vagy ssh -b , vagy openssl s_client -bind opciók.....
- A hozzászóláshoz be kell jelentkezni
- Teljesen jogos. Beleszűkültem a TLS-be. Felvettem issue-t, elérhető itt.
- Szintén vettem fel issue-t, elérhető itt.
- Érthető és jogos. Erről is készült issue.
Köszönöm a javaslatokat! Hasznosak. Igyekszem lefejleszteni őket.
- A hozzászóláshoz be kell jelentkezni
Köszi.
Még egy dolog eszembe jutott ami hasznos lehet. Jó lenne ha lenne "verbose mode", amiben pl kinyomná a kimenetre a cert chaint is pem ben.
Pl mint "openssl s_client -showcerts"
- A hozzászóláshoz be kell jelentkezni
Részemről bookmark, max. visszalövök vele a corporate IT Sec-nek, akik még az nmap enum-ssl-ciphers kimenetét sem tudják nemhogy értelmesen, de egyáltalán értelmezni sokszor...
trey, NagyZ? - hmmm? vélemény a termékről?
A gyors gondolat többet ér, mint a gyors mozdulat.
- A hozzászóláshoz be kell jelentkezni
A testssl.sh, illetve az ssh-audit kimenetei elég látványosak. Piros, sárga, illetve zöld sorok vannak bennük. Én is tervezek hasonlót.
- A hozzászóláshoz be kell jelentkezni
Wow, nice!
- A hozzászóláshoz be kell jelentkezni
sub
- A hozzászóláshoz be kell jelentkezni
Nekem mint egyszeri usernek aki ilyesmi eszközt nagyon ritkán használ és ha mégis, akkor se ért mindent a kimenetből, hasznos volna egy átlag user számára is könnyen emészhető rész, ami kiírja az SSL Labs tesztjéhez hasonlóan, hogy mi van jól beállítva és mi nincs, ez alapján osztályozná, esetleg még linket, segítséget is ad ahhoz, hogy min javasolt változtatni a nagyobb biztonság érdekében. Persze ha ez az eszköz főleg rendszergazdáknak készül akiknek a jelenlegi kimenet is elég és érthető, azt is megértem :-)
- A hozzászóláshoz be kell jelentkezni
Köszönöm a feedbacket. Itt találsz olyan eszközre javaslatot, ami hasznos lehet neked. Másrészt tervezek ilyesmit én is.
- A hozzászóláshoz be kell jelentkezni
Ha a crypto-t érted magabiztosan olyan szinten, h. ezeknek a security ssl tls auditoknak a kimenetét segítség nélkül értelmezni, és alkalmazni tudod, előtted áll az egész IT világ, sztárgázsiért.
- A hozzászóláshoz be kell jelentkezni
sub
- A hozzászóláshoz be kell jelentkezni
sub
- A hozzászóláshoz be kell jelentkezni
esetleg még érdemes lehet a SIP TLS-t is
- A hozzászóláshoz be kell jelentkezni