Modiwl crypto-gost-tls13 yn cynnwys y gweithrediad TLS 1.3 (RFC 8446 + RFC 9367) gyda chryptograffeg GOST. Y fersiwn hon yw'r fersiwn gychwynnol o'r llyfrgell ac mae'n barod i'w defnyddio'n fewnol.
Nodwedd unigryw o'r llyfrgell yw ei gweithrediad Java pur. Mae pob gweithrediad cryptograffig yn cael ei berfformio gan ddefnyddio offer adeiledig y llyfrgell, heb unrhyw ddibyniaethau allanol.
Dyma un o'r gweithrediadau ffynhonnell agored cyntaf o TLS 1.3 gyda GOST yn Java, felly mae profion rhyngop wedi'u gwneud i'r graddau lleiaf posibl.
Isod mae galluoedd y llyfrgell.
- Protocolau:
- Ysgwyd llaw: llawn (cleient/gweinydd), byr (PSK), cydfuddiannol (mTLS).
- ALPN (RFC 7301) - Negodi Protocol Haen Cymhwysiad (HTTP/2, HTTP/1.1).
- SNI (RFC 6066) - Nodwedd Enw gweinydd ar gyfer lleoliadau aml-denant.
- KeyDiweddaru (RFC 8446 §4.6.3) – diweddaru allweddi amgryptio traffig.
- Ystafelloedd Cipher: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
- ECDHE: CryptoPro-A (256-bit), CryptoPro-B (512-bit)
- Ail-allweddu TLSTREE fesul cofnod — newid yr allwedd amgryptio ar gyfer pob cofnod TLS.
- Darnio ac ail-gydosod ysgwyd llaw a chofnodion (RFC 8446 §5.1).
- Ailgychwyn sesiwn: PSK drwy NewSessionTicket (PskStore yn y cof, untro).
- Staplo OCSP: gweinydd прикладывает OCSP-ответ к сертификату.
- Negeseuon ar ôl ysgwyd llaw: NewSessionTicket (arbed ar gyfer PSK).
- Cryptograffeg:
- Amserlen allweddol: HKDF-Streebog (RFC 5869) dros TLS 1.3 (RFC 8446 §7.1).
- Diogelu cofnod: MGM-AEAD (Kuznyechik) gyda nonce yn ôl RFC 8446 §5.3.
- Mae allweddi dros dro yn cael eu dileu ar ôl eu defnyddio.
- Tystysgrifau:
- Dadansoddi X.509v3 (GOST R 34.10-2012) — dadansoddydd DER adeiledig.
- Cadwyn ddilysu: llofnodion, DN (cyhoeddwr → pwnc), Cyfyngiadau Sylfaenol, Defnydd Allwedd, Defnydd Allwedd Estynedig * (serverAuth / clientAuth), pathLen.
- Gwirio enw gwesteiwr: dNSName + iPAddress (RFC 6125).
- Dilysu ymatebion OCSP (RFC 6960).
4.Trafnidiaeth:
- TlsTransport - rhyngwyneb.
- InMemoryTlsTransport - ar gyfer profion a senarios proses sengl (ciw yn y cof).
- SocketTlsTransport — yn blocio Mewnbwn/Allbwn dros java.net.Socket.
- ChannelTlsTransport - NIO SocketCludiant seiliedig ar sianel (modd blocio, ymyrradwy).
- Ysgwyd llaw cam wrth gam:
- Mae TlsHandshakeEngine yn beiriant cyflwr ar gyfer ysgwyd llaw (wedi'i ddatgysylltu o I/O). Mae'n defnyddio TlsSession fel trefnydd ac mae'n addas ar gyfer integreiddio â JSSE (SSLEngine).
- API ByfferByte:
- TlsRecord.protect/unprotect — Gorlwytho ByteBuffer ar gyfer integreiddio dim copi gyda NIO. Yn llwytho allweddi:
- Pkcs12Loader — yn darllen PFX (PKCS#12) gyda PBKDF2-HMAC-SHA256 + AES-256-CBC.
- Diwedd y sesiwn:
- cau_hysbysu - cau cywir yn ôl y protocol.
- Sychu deunydd allweddol wrth gau neu wneud camgymeriad.
- Rhybudd trin: angheuol - cau ar unwaith + dileu.
- Diogelwch gweithredu:
- Cymhariaethau amser cyson ar gyfer rhwymwyr verify_data a PSK (amddiffyniad rhag ymosodiadau amseru)
- Sychu deunydd allweddol: destroy() ar bob gwrthrych gydag allweddi (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext), ar gau, rhybudd angheuol, eithriad yn ysgwyd llaw
- Amddiffyniad DoS: cyfyngiadau ar hyd cadwyn dystysgrif (10), negeseuon ar ôl ysgwyd llaw, maint cofnod.
- MGM nonce: Mae MSB y beit cyntaf wedi'i glirio ar gyfer ICN (RFC 9058 §3, RFC 9367 §3.3).
- Mae allwedd breifat a thrawsgrifiad yr ysgwyd llaw ECDHE yn cael eu dinistrio ar ôl i'r ysgwyd llaw gwblhau.
- Mae deunydd allweddol HMAC yn cael ei ddileu ar ôl ei ddefnyddio (HkdfStreebog, KdfGostR3411_2012_256).
- Cyfyngiadau:
- PSK Ailgychwyn yn unig (nid yw 0-RTT na PSK allanol yn cael eu cefnogi).
- Dim ond psk_dhe_ke (nid yw PSK pur heb ECDHE yn cael ei gefnogi).
- Ni chefnogir HelloRetryRequest (RFC 8446 §4.1.4) - dim ond un grŵp â enw sy'n cael ei ddefnyddio (GC256A yn ddiofyn).
- GOST yn unig (ni chefnogir cyfresi seiffr nad ydynt yn GOST).
- Profi:
- Mae'r llyfrgell yn cynnwys Profion Ateb Hysbys o Atodiad A.1 RFC 9367 (amrywiadau L ac S)—yr amserlen allweddol lawn, TLSTREE, AEAD, ac ECDHE. Mae hefyd yn pasio'r ystod lawn o brofion KAT.
- 4 prawf integreiddio (hunan-ryngweithiol) trwy socedi TCP go iawn.
- Profion ffwff ar gyfer dadansoddwyr: TlsMessageParser (8 dull), TlsDerParser (3 dull), TlsOcspVerifier (1 dull), i sicrhau diogelwch a lleihau'r fector ymosod ar ddadansoddwyr.
- Datrysiadau pensaernïol:
- TlsHandshakeEngine - peiriant cyflwr wedi'i ddatgysylltu o I/O (ar gyfer modiwl JSSE yn y dyfodol).
- Gorlwytho ByteBuffer o TlsRecord.protect/unprotect ar gyfer NIO/JSSE.
- Storfa TLSTREE (TlsTreeCache) - ailgyfrifo lefelau wedi'u newid yn unig (RFC 9367).
- Mae InMemoryTlsTransport.Pair yn bâr dwyffordd ar gyfer profion a chyfathrebu un broses.
Mae'r llyfrgell wedi'i dosbarthu o dan drwydded rydd.
Ffynhonnell: linux.org.ru
