మాడ్యూల్ క్రిప్టో-గోస్ట్-టిఎల్ఎస్13 అమలును కలిగి ఉంటుంది TLS 1.3 (RFC 8446 + RFC 9367) GOST క్రిప్టోగ్రఫీతో. ఈ విడుదల లైబ్రరీ యొక్క తొలి వెర్షన్ మరియు అంతర్గత వినియోగానికి సిద్ధంగా ఉంది.
ఈ లైబ్రరీ యొక్క ప్రత్యేక లక్షణం దాని స్వచ్ఛమైన జావా ఇంప్లిమెంటేషన్. అన్ని క్రిప్టోగ్రాఫిక్ కార్యకలాపాలు ఎటువంటి బాహ్య ఆధారాలు లేకుండా, లైబ్రరీ యొక్క అంతర్నిర్మిత సాధనాలను ఉపయోగించి నిర్వహించబడతాయి.
ఇది జావాలో GOST తో కూడిన TLS 1.3 యొక్క మొట్టమొదటి ఓపెన్ సోర్స్ ఇంప్లిమెంటేషన్లలో ఒకటి, కాబట్టి ఇంటరాప్ టెస్టింగ్ సాధ్యమైనంత కనిష్ట స్థాయిలో చేయబడింది.
లైబ్రరీ యొక్క సామర్థ్యాలు క్రింద ఇవ్వబడ్డాయి.
- ప్రోటోకాల్లు:
- హ్యాండ్షేక్: పూర్తి (క్లయింట్/సర్వర్), సంక్షిప్త (PSK), పరస్పర (mTLS).
- ALPN (RFC 7301) - అప్లికేషన్ లేయర్ ప్రోటోకాల్ నెగోషియేషన్ (HTTP/2, HTTP/1.1).
- SNI (RFC 6066) - పేరు సూచన సర్వర్ బహుళ-టెనెంట్ విస్తరణల కోసం.
- కీఅప్డేట్ (RFC 8446 §4.6.3) – ట్రాఫిక్ ఎన్క్రిప్షన్ కీలను అప్డేట్ చేయడం.
- సైఫర్ సూట్లు: TLS_KUZNYECHIK_MGM_STREEBOG_256_L/S.
- ECDHE: క్రిప్టోప్రో-A (256-బిట్), క్రిప్టోప్రో-B (512-బిట్)
- ప్రతి రికార్డుకు TLSTREE రీ-కీయింగ్ — ప్రతి TLS రికార్డుకు ఎన్క్రిప్షన్ కీని మార్చడం.
- హ్యాండ్షేక్లు మరియు రికార్డుల విచ్ఛిన్నం మరియు పునఃసమీకరణ (RFC 8446 §5.1).
- సెషన్ పునఃప్రారంభం: NewSessionTicket ద్వారా PSK (PskStore ఇన్-మెమరీ, ఒకేసారి ఉపయోగం).
- OCSP స్టేప్లింగ్: సర్వర్ OCSP ప్రతిస్పందనను సర్టిఫికేట్కు జతచేస్తుంది.
- హ్యాండ్షేక్ తర్వాత సందేశాలు: NewSessionTicket (PSK కోసం సేవ్ చేయండి).
- క్రిప్టోగ్రఫీ:
- కీలక షెడ్యూల్: TLS 1.3 (RFC 8446 §7.1) పైగా HKDF-స్ట్రీబోగ్ (RFC 5869).
- రికార్డ్ రక్షణ: RFC 8446 §5.3 ప్రకారం నాన్స్తో కూడిన MGM-AEAD (కుజ్నియెచిక్).
- తాత్కాలిక కీలు ఉపయోగం తర్వాత చెరిపివేయబడతాయి.
- సర్టిఫికెట్లు:
- X.509v3 పార్సింగ్ (GOST R 34.10-2012) — అంతర్నిర్మిత DER పార్సర్.
- ధృవీకరణ గొలుసు: సంతకాలు, DN (జారీచేసేవారు → విషయం), ప్రాథమిక పరిమితులు, కీ వినియోగం, విస్తరించిన కీ * వినియోగం (సర్వర్ఆథ్ / క్లయింట్ఆథ్), పాత్ పొడవు.
- హోస్ట్ పేరు తనిఖీ: dNSName + iPAddress (RFC 6125).
- OCSP ప్రతిస్పందనల ధృవీకరణ (RFC 6960).
4.రవాణా:
- TlsTransport - ఇంటర్ఫేస్.
- InMemoryTlsTransport - పరీక్షలు మరియు సింగిల్-ప్రాసెస్ దృశ్యాల కోసం (ఇన్-మెమరీ క్యూ).
- SocketTlsTransport — java.net.Socket ద్వారా బ్లాకింగ్ I/O.
- ChannelTlsTransport - NIO సాకెట్ ఛానల్-ఆధారిత ట్రాన్స్పోర్ట్ (బ్లాకింగ్ మోడ్, అంతరాయం కలిగించదగినది).
- దశలవారీగా కరచాలనం:
- TlsHandshakeEngine అనేది హ్యాండ్షేక్ కోసం ఒక స్టేట్ మెషీన్ (I/O నుండి వేరు చేయబడింది). ఇది ఆర్కెస్ట్రేటర్గా TlsSessionను ఉపయోగిస్తుంది మరియు JSSE (SSLEngine)తో అనుసంధానానికి అనుకూలంగా ఉంటుంది.
- బైట్బఫర్ API:
- TlsRecord.protect/unprotect — NIOతో జీరో-కాపీ ఇంటిగ్రేషన్ కోసం ByteBuffer ఓవర్లోడ్లు. కీలు లోడ్ అవుతున్నాయి:
- Pkcs12Loader — PBKDF2-HMAC-SHA256 + AES-256-CBC తో PFX (PKCS#12) ను చదవడం.
- సెషన్ ముగింపు:
- close_notify - ప్రోటోకాల్ ప్రకారం సరిగ్గా మూసివేయడం.
- మూసివేసేటప్పుడు లేదా పొరపాటు చేసినప్పుడు కీ మెటీరియల్ను తుడిచివేయడం.
- హెచ్చరికను నిర్వహించడం: తీవ్రమైనది - తక్షణమే మూసివేయడం + తొలగించడం.
- అమలు భద్రత:
- verify_data మరియు PSK బైండర్ల కోసం స్థిర-సమయ పోలికలు (టైమింగ్ దాడుల నుండి రక్షణ)
- కీ మెటీరియల్ను తుడిచివేయడం: కీలు ఉన్న అన్ని ఆబ్జెక్ట్లపై (TlsKeySchedule, TlsTrafficKeys, TlsRecord, HandshakeContext) destroy(), క్లోజ్ చేసినప్పుడు, ఫేటల్ అలర్ట్, హ్యాండ్షేక్లో ఎక్సెప్షన్
- DoS రక్షణ: సర్టిఫికేట్ చైన్ పొడవు (10), హ్యాండ్షేక్ అనంతర సందేశాలు, రికార్డ్ పరిమాణంపై పరిమితులు.
- MGM నాన్స్: మొదటి బైట్ యొక్క MSB ICN కోసం క్లియర్ చేయబడింది (RFC 9058 §3, RFC 9367 §3.3).
- హ్యాండ్షేక్ పూర్తయిన తర్వాత ECDHE ప్రైవేట్ కీ మరియు హ్యాండ్షేక్ ట్రాన్స్క్రిప్ట్ నాశనం చేయబడతాయి.
- ఉపయోగించిన తర్వాత HMAC కీ మెటీరియల్ తొలగించబడుతుంది (HkdfStreebog, KdfGostR3411_2012_256).
- ఆంక్షలు:
- పునఃప్రారంభ PSK మాత్రమే (0-RTT మరియు బాహ్య PSKలకు మద్దతు లేదు).
- psk_dhe_ke మాత్రమే (ECDHE లేని స్వచ్ఛమైన PSKకి మద్దతు లేదు).
- HelloRetryRequest (RFC 8446 §4.1.4)కు మద్దతు లేదు - ఒకే ఒక పేరున్న సమూహం ఉపయోగించబడుతుంది (డిఫాల్ట్గా GC256A).
- GOST మాత్రమే (GOST కాని సైఫర్ సూట్లకు మద్దతు లేదు).
- పరీక్ష:
- ఈ లైబ్రరీలో RFC 9367 అపెండిక్స్ A.1 (L మరియు S వేరియంట్లు) నుండి తెలిసిన సమాధాన పరీక్షలు (Known Answer Tests) ఉన్నాయి—అవి పూర్తి కీ షెడ్యూల్, TLSTREE, AEAD, మరియు ECDHE. ఇది KAT పరీక్షల పూర్తి శ్రేణిలో కూడా ఉత్తీర్ణత సాధిస్తుంది.
- నిజమైన TCP సాకెట్ల ద్వారా 4 ఇంటిగ్రేషన్ పరీక్షలు (సెల్ఫ్-ఇంటరాప్).
- భద్రతను నిర్ధారించడానికి మరియు పార్సర్లపై దాడి వెక్టర్ను తగ్గించడానికి, పార్సర్ల కోసం ఫజ్ పరీక్షలు: TlsMessageParser (8 పద్ధతులు), TlsDerParser (3 పద్ధతులు), TlsOcspVerifier (1 పద్ధతి).
- వాస్తు పరిష్కారాలు:
- TlsHandshakeEngine - I/O నుండి వేరు చేయబడిన స్టేట్ మెషీన్ (భవిష్యత్ JSSE మాడ్యూల్ కోసం).
- NIO/JSSE కోసం TlsRecord.protect/unprotect యొక్క ByteBuffer ఓవర్లోడ్లు.
- TLSTREE కాష్ (TlsTreeCache) - మార్చబడిన స్థాయిలను మాత్రమే తిరిగి లెక్కించడం (RFC 9367).
- InMemoryTlsTransport.Pair అనేది పరీక్షలు మరియు సింగిల్-ప్రాసెస్ కమ్యూనికేషన్ కోసం ఒక ద్విదిశాత్మక జత.
ఈ గ్రంథాలయం ఉచిత లైసెన్సు క్రింద పంపిణీ చేయబడుతోంది.
మూలం: linux.org.ru
