የ TLS ፕሮቶኮል ስሪቶች እና ትርጉማቸው
የመረቡ ደህንነት አስተማማኝ እንዲሆን የትራንስፖርት ንብርብር ደህንነት (TLS) ፕሮቶኮል ስሪቶችን በትክክል መለየት ወሳኝ ነው። ይህ መሣሪያ በተሰጠው ጽሑፍ ውስጥ ያሉትን የፕሮቶኮል ስሪቶች በመለየት "የፕሮቶኮል ስሪቶች" በሚለው ክፍል ስር ያሳያል።
በተለያዩ የደህንነት ፍተሻዎች ውስጥ የፕሮቶኮል ስሪቶች በተለያዩ ሚናዎች ሊታዩ ይችላሉ። መሣሪያው እነዚህን ሚናዎች በሚከተለው መልኩ ይለያል፦
- ተወያይቷል፦ በደንበኛው እና በአገልጋዩ መካከል ለግንኙነቱ እንዲያገለግል የተመረጠው እና የተወሰነው የፕሮቶኮል ስሪት።
- አቅርቧል፦ ደንበኛው ግንኙነት ለመጀመር በሚያደርገው ጥረት (ClientHello) ላይ ለአገልጋዩ ያቀረባቸው የፕሮቶኮል ስሪቶች ዝርዝር።
- ተስተውሏል፦ በቅኝት ወይም በእጅ መጨባበጥ ማጠቃለያ ውስጥ የተመዘገበ የፕሮቶኮል ስሪት።
በቀረበው ጽሑፍ ውስጥ ምንም ዓይነት የፕሮቶኮል ስሪት መለየት ካልተቻለ፣ መሣሪያው "በቀረበው ጽሑፍ ውስጥ ምንም የፕሮቶኮል ሥሪት አልተገኘም።" የሚለውን መልዕክት ያሳያል።
የ TLS Cipher Suites መዋቅር እና አካላት
የምስጢር ስብስቦች (Cipher Suites) በ TLS ግንኙነት ወቅት መረጃን ለመመስጠር፣ ለማረጋገጥ እና ቁልፎችን ለመለዋወጥ የሚያገለግሉ ስልተ ቀመሮች ስብስብ ናቸው። ይህ መሣሪያ በጽሑፉ ውስጥ የተገኙትን የምስጢር ስብስቦች ለይቶ "Cipher Suites" በሚለው ርዕስ ስር ያሳያል። ልክ እንደ ፕሮቶኮል ስሪቶቹ ሁሉ፣ እነዚህም "ተወያይቷል"፣ "አቅርቧል" ወይም "ተስተውሏል" በሚሉ ሚናዎች ተለይተው ሊቀመጡ ይችላሉ።
መሣሪያው እያንዳንዱን የምስጢር ስብስብ በመመርመር የደህንነት ደረጃቸውን ይገመግማል፦
- ዘመናዊ፦ ጠንካራ እና በአሁኑ ጊዜ አስተማማኝ የሆኑ የምስጢር ስብስቦች።
- ግምገማ፦ የተለየ ትኩረት ወይም ተጨማሪ ምርመራ የሚያስፈልጋቸው ስብስቦች።
- ተቋርጧል፦ በደህንነት ጉድለት ምክንያት ከአገልግሎት ውጪ እንዲሆኑ የተወሰኑ የቆዩ ስብስቦች።
- ያልታወቀ፦ መሣሪያው በውስጡ ካለው የጋራ ስብስብ ዝርዝር ውስጥ ያላገኘው ስብስብ።
በቀረበው ጽሑፍ ውስጥ ምንም ዓይነት የምስጢር ስብስብ ካልተገኘ "በቀረበው ጽሑፍ ውስጥ ምንም የምስጥር ስብስብ አልተገኘም።" የሚለው መልዕክት ይወጣል።
የቆዩ እና የተቋረጡ የክሪፕቶግራፊ ስልተ ቀመሮች
ደህንነታቸው የተጠበቁ ግንኙነቶችን ለማረጋገጥ የቆዩ እና የተዳከሙ ስልተ ቀመሮችን መለየት ያስፈልጋል። ይህ መሣሪያ በምስጢር ስብስቦች ውስጥ ያሉ ደካማ አካላትን በመለየት የሚከተሉትን ግኝቶች ያሳያል፦
| ስልተ ቀመር / የምስጢር ዓይነት | የመሣሪያው ግኝት (Finding) |
|---|---|
| RC4 | RC4 ተቋርጧል እናም መደራደር የለበትም። |
| DES | DES ለአጠቃላይ TLS አጠቃቀም ደህንነቱ የተጠበቀ አይደለም። |
| 3DES | 3DES ትንሽ የማገጃ መጠን ያለው እና ለTLS ተቋርጧል። |
| NULL | NULL ምስጠራ ምስጢራዊነት አይሰጥም። |
| EXPORT | EXPORT ስብስቦች ሆን ብለው ደካማ ክሪፕቶግራፊን ይጠቀማሉ እና ተቋርጠዋል። |
| Anonymous | ስም-አልባ ስብስቦች እኩዮቹን አያረጋግጡም እና ለመጥለፍ የተጋለጡ ናቸው። |
| MD5 | MD5 ለአጠቃላይ TLS አጠቃቀም ደህንነቱ የተጠበቀ አይደለም። |
| SHA-1 | ይህ ስብስብ SHA-1 ይጠቀማል፣ እሱም ለአጠቃላይ TLS አጠቃቀም ተቋርጧል። |
| CBC | CBC ስብስቦች ውርስ ናቸው። እንደ AES-GCM ወይም ChaCha20-Poly1305 ያሉ የAEAD ስብስብን ይምረጡ። |
| CCM-8 | CCM-8 አጠር ያለ የማረጋገጫ መለያ ይጠቀማል እና ፕሮቶኮል-ተኮር ግምገማ ያስፈልገዋል። |
በ TLS 1.3 ውስጥ የቁልፍ ልውውጥ እና ማረጋገጫ
በ TLS 1.3 ፕሮቶኮል ውስጥ የምስጢር ስብስቦች አወቃቀር ከቀደሙት ስሪቶች በእጅጉ የተለየ ነው። በቀደሙት የ TLS ስሪቶች (ለምሳሌ TLS 1.2) የቁልፍ ልውውጥ (Key Exchange) እና የማረጋገጫ (Authentication) ስልተ ቀመሮች በምስጢር ስብስቡ ስም ውስጥ በቀጥታ ይካተቱ ነበር።
ነገር ግን በ TLS 1.3 ውስጥ እነዚህ ሂደቶች ከምስጢር ስብስቡ ሙሉ በሙሉ ተለይተዋል። በ TLS 1.3 የምስጢር ስብስብ ስሞች ውስጥ የሚገለጹት የመዝገብ ምስጠራ (Bulk Encryption) እና የእጅ መጨባበጥ ሃሽ (Handshake Hash) ብቻ ናቸው። በዚህም ምክንያት ቁልፍ ልውውጥ እና ማረጋገጫ በተናጠል የሚደራደሩ በመሆናቸው ከስብስብ ስም ብቻ ሊወሰዱ አይችሉም። መሣሪያው ይህንን ሁኔታ ሲያገኝ "TLS 1.3 ቁልፍ ልውውጥን እና ማረጋገጫን ከሲፈር ስብስብ ተለይቶ ይደራደራል።" የሚለውን ማብራሪያ ይሰጣል።
ወደፊት ሚስጥራዊነትን (Forward Secrecy) ማረጋገጥ
በ TLS ግንኙነቶች ውስጥ ወደፊት ሚስጥራዊነትን (Forward Secrecy) ማረጋገጥ የረጅም ጊዜ ደህንነትን ለመጠበቅ ወሳኝ ነው። የማይንቀሳቀስ የ RSA ቁልፍ ልውውጥ (Static RSA Key Exchange) ጥቅም ላይ በሚውልበት ጊዜ፣ የአገልጋዩ የግል ቁልፍ ወደፊት ቢሰረቅ ወይም ቢጠለፍ፣ ከዚህ ቀደም የተመዘገቡ ማናቸውንም ግንኙነቶች ወደ ኋላ ተመልሶ መፍታት (Decrypt ማድረግ) ይቻላል።
በዚህ ምክንያት የማይንቀሳቀስ የ RSA ቁልፍ ልውውጥ ወደፊት ሚስጥራዊነትን አያረጋግጥም። መሣሪያው ይህንን ድክመት የያዘ የምስጢር ስብስብ ሲያገኝ "የማይንቀሳቀስ RSA ቁልፍ ልውውጥ ወደፊት ሚስጥራዊነትን አይሰጥም።" የሚለውን ግኝት ያሳያል። ደህንነቱ የተጠበቀ ግንኙነት ለመፍጠር እንደ ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) ያሉ ወደፊት ሚስጥራዊነትን የሚሰጡ ጊዜያዊ የቁልፍ ልውውጥ ዘዴዎችን መጠቀም ይመረጣል።
የግቤት ቅርጸቶች፣ ገደቦች እና የስህተት መልዕክቶች
ይህ መሣሪያ የ TLS ቅኝት ውጤቶችን ወይም የእጅ መጨባበጥ ማጠቃለያዎችን ለመተንተን የተነደፈ ነው። ተጠቃሚዎች ከተለመዱት የ TLS ቃኚዎች፣ ከ openssl s_client ትዕዛዝ ውጤቶች፣ ከፓኬት-ትንታኔ ማጠቃለያዎች ወይም ከአጫጭር ClientHello ወይም ServerHello ማስታወሻዎች የተገኙ ጽሑፎችን መለጠፍ ይችላሉ።
የግቤት ገደቦች እና ደንቦች፦
- የቁምፊ ገደብ፦ የሚለጠፈው ጽሑፍ ከ 200,000 ቁምፊዎች በታች መሆን አለበት።
- የይዘት ዓይነት፦ ሊነበብ የሚችል ጽሑፍ መሆን አለበት። ጥሬ ሁለትዮሽ (Raw binary) ወይም የፓኬት ቀረጻ ፋይሎችን (PCAP) መሣሪያው አይደግፍም።
- የመለያ ዘዴዎች፦ መሣሪያው የተለመዱ የ IANA ስሞችን፣ የ OpenSSL ተለዋጭ ስሞችን እና በርካታ የጋራ ሄክሳዴሲማል ስብስብ መታወቂያዎችን (Hexadecimal Suite IDs) መለየት ይችላል። ጥሬ የፓኬት ባይቶችን ግን አይፈታም።
የስህተት መልዕክቶች፦
- ምንም ሳይለጠፍ ትንተና ሲጀመር፦ "መጀመሪያ የTLS ቅኝት ወይም የእጅ መጨባበጥ ማጠቃለያ ለጥፍ።"
- የቁምፊ ገደብ ሲ አልፍ፦ "ያ ማጠቃለያ ባልተለመደ ሁኔታ ትልቅ ነው። ከ200,000 ቁምፊዎች በታች ያቆዩት።"
- ምንም የ TLS ስሪት ወይም የምስጢር ስብስብ መለየት ካልተቻለ፦ "ምንም የTLS ስሪት ወይም የምስጥር ስብስብ አልታወቀም። ሊነበብ የሚችል ስካነር ወይም የእጅ መጨባበጥ መስኮችን ለጥፍ።"
- በውስጠ-ግንቡ ካርታ ውስጥ የሌለ ስብስብ ሲያጋጥም፦ "ይህ ስብስብ አብሮ በተሰራው የጋራ ስብስብ ካርታ ውስጥ የለም። የአሁኑን የIANA መዝገብ ቤት ወይም ስካነር ሰነድ ያረጋግጡ።"
የማይንቀሳቀስ ትንተና እና የቀጥታ ቅኝት ልዩነቶች
ይህ መሣሪያ የሚሰራው በማይንቀሳቀስ ትንተና (Static Analysis) ዘዴ ነው። ይህም ማለት ተጠቃሚው ያቀረበውን ጽሑፍ ብቻ መርምሮ ያብራራል። መሣሪያው ከማንኛውም አስተናጋጅ (Host) ጋር በቀጥታ አይገናኝም፣ የቀጥታ የ TLS ቅኝት አያካሂድም፣ የምስክር ወረቀቶችን (Certificates) ትክክለኛነት አያረጋግጥም፣ የቁልፍ መጠኖችን አይለካም፣ የመቀነስ ባህሪን (Downgrade Behavior) አይሞክርም ወይም አገልጋዩ የሚቀበለውን እያንዳንዱን የምስጢር ስብስብ ዝርዝር አያሳይም።
የግላዊነት ጥበቃን በተመለከተ፣ ተጠቃሚው የሚለጥፋቸው የ TLS ዝርዝሮች በሙሉ በአሳሹ ውስጥ ብቻ ይቆያሉ። መሣሪያው መረጃዎችን ወደ የትኛውም የውጭ አገልጋይ አይሰቅልም ወይም አያስቀምጥም።
ተደጋግመው የሚነሱ ጥያቄዎች (FAQ)
የትኞቹን TLS የውጤት ቅርጸቶችን መለጠፍ እችላለሁ?
ከተለመዱት TLS ቃኚዎች፣ openssl s_client፣ የፓኬት-ትንታኔ ማጠቃለያዎች ወይም አጭር ClientHello ወይም ServerHello ማስታወሻ ለጥፍ። አራሚው የተለመዱ የIANA ስሞችን፣ OpenSSL ተለዋጭ ስሞችን እና በርካታ የጋራ ሄክሳዴሲማል ስብስብ መታወቂያዎችን ያውቃል። ጥሬ ፓኬት ባይት አይፈታም።
ለምን TLS 1.3 የሲፈር ስብስብ RSA ወይም ECDHE አያሳይም?
TLS 1.3 የሲፈር ስብስብ ስሞች የመዝገብ ምስጠራን እና የእጅ መጨባበጥ ሃሽን ይገልፃሉ። ቁልፍ ልውውጥ እና ማረጋገጫ በተናጠል ይደራደራሉ፣ ስለዚህ ከስብስብ ስም ብቻ ሊወሰዱ አይችሉም።
ይህ ውጤት አገልጋዩ ደህንነቱ የተጠበቀ መሆኑን ያረጋግጣል?
አይደለም እርስዎ የሚለጥፉትን ጽሑፍ ብቻ ነው የሚያብራራው። ከአስተናጋጁ ጋር አይገናኝም, የምስክር ወረቀቱን አያረጋግጥ, የቁልፍ መጠኖችን አይለካም, የመቀነስ ባህሪን አይሞክርም ወይም አገልጋዩ የሚቀበለውን እያንዳንዱን ስብስብ አያሳይም።