ሞዱል ክሪፕቶ-ጎስት-ትልስ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: ክሪፕቶፕሮ-ኤ (256-ቢት)፣ ክሪፕቶፕሮ-ቢ (512-ቢት)
- በእያንዳንዱ መዝገብ TLSREE እንደገና ቁልፍ መስጠት - ለእያንዳንዱ የTLS መዝገብ የኢንክሪፕሽን ቁልፉን መለወጥ።
- የእጅ መጨባበጥ እና መዝገቦች መከፋፈል እና እንደገና መሰብሰብ (RFC 8446 §5.1)።
- የክፍለ ጊዜ ዳግም መጀመር፡ PSK በNewSessionTicket በኩል (PskStore በማህደረ ትውስታ ውስጥ፣ ለአንድ ጊዜ ብቻ ጥቅም ላይ የዋለ)።
- የOCSP ስቴፕሊንግ፡ አገልጋይ የOCSP ምላሹን ወደ ሰርተፊኬቱ ያክላል።
- ከእጅ መጨባበጥ በኋላ የሚላኩ መልዕክቶች፡- NewSessionTicket (ለPSK ያስቀምጡ)።
- ክሪፕቶግራፊ፡
- ቁልፍ የጊዜ ሰሌዳ፡ HKDF-Streebog (RFC 5869) ከTLS 1.3 በላይ (RFC 8446 §7.1)።
- የመዝገብ ጥበቃ፡ MGM-AEAD (Kuznyechik) በRFC 8446 §5.3 መሠረት ከኖንሴ ጋር።
- የኢፌመር ቁልፎች ከተጠቀሙ በኋላ ይሰረዛሉ።
- የምስክር ወረቀቶች
- X.509v3 ትንተና (GOST R 34.10-2012) — አብሮ የተሰራ የDER ተንታኝ።
- የማረጋገጫ ሰንሰለት፡ ፊርማዎች፣ ዲኤንኤ (አውጪ → ርዕሰ ጉዳይ)፣ መሰረታዊ ገደቦች፣ የቁልፍ አጠቃቀም፣ የተራዘመ ቁልፍ * አጠቃቀም (serverAuth / clientAuth)፣ pathLen።
- የአስተናጋጅ ስም ቼክ፡ dNSName + iPAaddress (RFC 6125)።
- የOCSP ምላሾች ማረጋገጫ (RFC 6960)።
4.ቻናል፡
- TlsTransport - በይነገጽ።
- InMemoryTlsTransport - ለሙከራዎች እና ለአንድ-ሂደት ሁኔታዎች (በማህደረ ትውስታ ውስጥ ወረፋ)።
- SocketTlsTransport — በjava.net.Socket ላይ I/Oን ማገድ።
- ቻናልቲልስትራንስፖርት - በኒኦ ሶኬትቻናል ላይ የተመሠረተ ትራንስፖርት (የማገጃ ሁነታ፣ ሊቋረጥ የሚችል)።
- ደረጃ በደረጃ የእጅ መጨባበጥ፦
- TlsHandshakeEngine የእጅ መጨባበጥ (ከ I/O የተላቀቀ) የስቴት ማሽን ነው። TlsSessionን እንደ ኦርኬስትራ ይጠቀማል እና ከ JSSE (SSLEngine) ጋር ለመዋሃድ ተስማሚ ነው።
- ባይትቡፈር ኤፒአይ፡
- TlsRecord.protect/unprotect — ባይትቡፈር ከኤንአይኦ ጋር ዜሮ-ቅጂ ውህደትን ከመጠን በላይ ያስወጣል። ቁልፎችን በመጫን ላይ፦
- Pkcs12Loader — PFX (PKCS#12) ከPBKDF2-HMAC-SHA256 + AES-256-CBC ጋር በማንበብ።
- የክፍለ ጊዜው መጨረሻ፦
- close_notify - በፕሮቶኮሉ መሠረት ትክክለኛ መዝጊያ።
- ስህተት ሲሰሩ ወይም ሲዘጉ ቁልፍ ቁሳቁሶችን ማጽዳት።
- የማስጠንቀቂያ አያያዝ፡ ገዳይ - ወዲያውኑ መዝጋት + ማጥፋት።
- የአፈፃፀም ደህንነት፡
- ለ verify_data እና PSK ማያያዣዎች የማያቋርጥ ጊዜ ንፅፅሮች (ከጊዜያዊ ጥቃቶች ጥበቃ)
- የቁልፍ ቁስን ማጽዳት፡- ቁልፎችን በመጠቀም በሁሉም ነገሮች ላይ destroy() (TlsKeySchedule፣ TlsTrafficKeys፣ TlsRecord፣ HandshakeContext)፣ በቅርበት፣ ገዳይ ማስጠንቀቂያ፣ በእጅ መጨባበጥ ልዩ ሁኔታ
- የDoS ጥበቃ፡- በሰርተፊኬት ሰንሰለት ርዝመት ላይ ገደቦች (10)፣ ከእጅ መጨባበጥ በኋላ የሚላኩ መልዕክቶች፣ የመዝገብ መጠን።
- የኤምጂኤም ኖንሴ፡ የመጀመሪያው ባይት MSB ለአይሲኤን (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 ልዩነቶች) የተገኙ የታወቁ የመልስ ፈተናዎችን ይዟል - ሙሉ ቁልፍ መርሃ ግብር፣ TLSTREE፣ AEAD እና ECDHE። እንዲሁም ሙሉውን የ KAT ፈተናዎች ያልፋል።
- በእውነተኛ የቲሲፒ ሶኬቶች በኩል 4 የውህደት ሙከራዎች (ራስን በራስ-ማስተሳሰር)።
- ለፓርሰሮች የFuzz ሙከራዎች፡ TlsMessageParser (8 ዘዴዎች)፣ TlsDerParser (3 ዘዴዎች)፣ TlsOcspVerifier (1 ዘዴ)፣ ደህንነትን ለማረጋገጥ እና በፓርሰሮች ላይ የጥቃት ቬክተርን ለመቀነስ።
- የስነ-ህንፃ መፍትሄዎች፡
- TlsHandshakeEngine - ከ I/O የተላቀቀ የስቴት ማሽን (ለወደፊቱ JSSE ሞዱል)።
- ለ NIO/JSSE የ TlsRecord.protect/unprotect የባይትቡፈር ከመጠን በላይ ጫናዎች።
- የTLSTREE መሸጎጫ (TlsTreeCache) - የተለወጡ ደረጃዎችን ብቻ እንደገና ማስላት (RFC 9367)።
- InMemoryTlsTransport.Pair ለሙከራዎች እና ለአንድ ሂደት ግንኙነት ሁለት አቅጣጫዊ ጥንድ ነው።
ቤተ መፃህፍቱ በነጻ ፈቃድ ስር ይሰራጫል።
ምንጭ: linux.org.ru
