RSA Key Inspector: ถอดรหัส Public Key และ Certificate แบบ PEM ได้ในเบราว์เซอร์
RSA Key Inspector คือเครื่องมือ PEM decoder และ x509 certificate inspector ฟรี ที่แสดง key size, exponent, curve และวันหมดอายุ พร้อมตัดสินความแข็งแรงของ RSA หรือ EC public key ให้ทันที
Table of Contents
Certificate ทุกใบที่คุณเคยเชื่อถือ ไม่ว่าจะเป็น TLS certificate, SSH host key หรือ signing key ของระบบ SSO ล้วนเริ่มต้นจากข้อความ base64 ที่อ่านไม่รู้เรื่องก้อนหนึ่ง และไม่มีใครบอกได้จากการมองเปล่า ๆ ว่าข้างในนั้นคือ RSA key ขนาด 4096 บิตที่แข็งแรงปลอดภัย หรือ key ขนาด 1024 บิตรุ่นเก่าที่ถือว่าเสี่ยงแล้ว วิธีแก้แบบดั้งเดิมคือเปิดเทอร์มินัลไปต่อสู้กับ option ต่าง ๆ ของ OpenSSL แต่จริง ๆ แล้วมีทางที่เร็วกว่านั้น นั่นคือ RSA Key Inspector ที่ถอดรหัส RSA หรือ EC public key แบบ PEM หรือ X.509 certificate ทั้งใบได้โดยตรงในเบราว์เซอร์ของคุณ
เครื่องมือนี้มาพร้อม built-in DER parser ที่ค่อย ๆ แกะโครงสร้าง binary ที่ซ่อนอยู่ใต้ base64 ภายในเสี้ยววินาที คุณจะเห็น algorithm, key size, public exponent, ชื่อ EC curve และสำหรับ certificate คือช่วงวันที่ validity ทั้งหมด ที่สำคัญกว่านั้นคือเครื่องมือไม่ได้แค่บอกข้อมูล แต่ยัง "ตัดสิน" ให้ด้วย strength verdict ที่บอกตรง ๆ ว่า key นี้ผ่านมาตรฐานยุคปัจจุบันหรือไม่ หรือ 1024-bit RSA แบบนี้ควรถูก flag ว่าแทบถอดรหัสได้แล้ว
ทุกอย่างทำงานฝั่ง client ทั้งหมด ข้อมูล key ของคุณไม่เคยออกจากเครื่อง ไม่ต้องสมัครบัญชี และไม่ต้องติดตั้งอะไรเลย ในบทความนี้เราจะพาไปดูวิธีใช้งาน อธิบายความหมายของแต่ละ field ที่ถอดรหัสออกมา และแนะนำสถานการณ์จริงที่การ decode PEM สักครั้งช่วยประหยัดเวลาในงาน security ได้จริง
ทำไมต้องใช้ RSA Key Inspector?
- ถอดรหัสวัสดุ key ที่อ่อนไหวแบบฝั่ง client: Public key และ certificate ไม่ใช่ความลับ แต่นิสัยเรื่อง key hygiene สำคัญเสมอ เครื่องมือนี้ parse ทุกอย่างในเบราว์เซอร์ด้วย JavaScript ล้วน ๆ PEM ที่คุณวางจึงไม่ถูกอัปโหลดไปยัง server ใด ๆ เหมาะกับ auditor และผู้ทำงานในองค์กรที่มีข้อกำกับด้านความปลอดภัย
- ไม่ต้องพึ่ง OpenSSL: จำให้ได้ว่าต้องใช้คำสั่งไหนกับไฟล์แบบไหน แล้ว flag ต้องใส่ตรงไหน คือความยุ่งยากล้วน ๆ ที่นี่แค่วาง กด แล้วอ่านผล ใช้ได้เหมือนกันทั้งบน Windows, macOS, Linux และแม้แต่บนมือถือ
- strength verdict ทันที: ตัวเลขดิบ ๆ ไม่ใช่การตัดสินใจ เครื่องมือแปล key size 1024 บิตให้เป็นข้อความตรงไปตรงมาว่า key นี้ถูกถอดรหัสได้และควรเปลี่ยน ทำให้รายละเอียดทางเทคนิคกลายเป็นสิ่งที่นำไปคุยกผู้บริหารหรือ vendor ได้ทันที
- รองรับทั้ง RSA และ EC ในที่เดียว: EC key ไม่ได้มี "key size" ในความหมายแบบ RSA แต่มี "curve" เป็นตัวกำหนด เครื่องมือจำแนกทั้งสองตระกูล แสดงชื่อ curve สำหรับ EC key และประเมินความแข็งแรงตามแบบของแต่ละแบบอย่างถูกต้อง
- บริบท X.509 ครบในหน้าจอเดียว: วาง certificate ทั้งใบแทนการวางแค่ public key คุณจะได้วันที่ validity ด้วย จึงจับ certificate ที่หมดอายุไปแล้วหรืออายุยืนผิดปกติได้โดยไม่ต้องรันคำสั่งแยก
- ฟรี ไม่ต้องติดตั้ง: ไม่มีการสมัครสมาชิก ไม่มี API key ไม่มี limit เป็นเครื่องมือประเภทที่ bookmark ไว้แล้วเปิดใช้วันละหลายครั้งระหว่างทำ audit ได้สบาย
Key Features ของเครื่องมือ
| Feature | ทำอะไรได้ |
|---|---|
| ช่องวาง PEM | รับ RSA หรือ EC public key หรือ X.509 certificate ทั้งใบ วางเป็นข้อความ PEM ได้เลย |
| built-in DER parser | ถอดรหัสโครงสร้าง ASN.1/DER ในเบราว์เซอร์ทั้งหมด ไม่มีการส่งข้อมูลไป server |
| จำแนก algorithm | บอกได้ว่าสิ่งที่วางเป็น RSA, EC หรือเป็นรูปแบบที่ parser อ่านไม่ได้ |
| key size และ exponent | รายงานขนาด modulus ของ RSA เป็นบิต พร้อม public exponent (โดยทั่วไปคือ 65537) |
| ชื่อ EC curve | แปลง curve OID เป็นชื่อที่อ่านได้ เช่น P-256 หรือ secp384r1 |
| วันที่ validity | ดึงช่วง notBefore และ notAfter จาก X.509 certificate |
| strength verdict | ให้เกรดเทียบกับแนวปฏิบัติปัจจุบัน และ flag พารามิเตอร์อ่อนอย่าง RSA 1024 บิต |
มีรายละเอียดน่าสนใจอยู่สามข้อ หนึ่ง strength verdict ถูกออกแบบให้เด็ดขาดเพราะ 2048 บิตคือเพดานต่ำสุดที่ยอมรับได้ อะไรที่ต่ำกว่านั้นจึงได้ warning ไม่ใช่ผ่านเฉย ๆ สอง parser ตัวนี้เป็น DER decoder ตัวจริง ไม่ใช่ regex จิ้ม base64 จึงรองรับโครงสร้าง nested ของ certificate ที่เว็บตรวจสอบแบบง่าย ๆ พังบ่อย และสาม เพราะ pipeline ทั้งหมดทำงานแบบ local คุณจึงใช้บนเครื่องที่ตัดจากอินเทอร์เน็ตได้ แค่โหลดหน้าเว็บไว้ครั้งเดียวตอนมีเน็ต
วิธีใช้งาน RSA Key Inspector
- คัดลอก PEM: หา public key หรือ certificate จากแหล่งของคุณ เช่น ไฟล์ server.crt, key ที่ vendor เผยแพร่ไว้ หรือ certificate ของ SSH host key โดย block PEM ต้องเริ่มด้วย header อย่าง -----BEGIN PUBLIC KEY----- หรือ -----BEGIN CERTIFICATE-----
- วางลงในช่อง input: เปิด RSA Key Inspector แล้ววาง block ทั้งหมดรวม header ด้วย ช่องว่างและการขึ้นบรรทัดใหม่ไม่ใช่ปัญหา เครื่องมือจัดการให้เอง
- ตรวจ field ที่ถอดรหัสแล้ว: parser จะแสดง algorithm, key size, exponent และ EC curve ทันที ให้เทียบกับสิ่งที่คุณคาดหวัง ถ้าเจอ RSA key ทั้งที่คาดว่าเป็น EC ตัวมันเองก็คือข้อค้นพบหนึ่งแล้ว
- อ่านวันที่ validity: ถ้าวางเป็น X.509 certificate ให้ดูช่วง notBefore ถึง notAfter และดู margin ด้วย certificate ที่จะหมดอายุในสองสัปดาห์คือ ticket เรื่อง change management ของวันนี้ ไม่ใช่เหตุฉุกเฉินของวันหน้า
- ใช้ strength verdict: อ่านเกรดสุดท้าย ถ้าเป็น OK สีเขียวแปลว่า key ผ่านแนวปฏิบัติปัจจุบัน ถ้าเป็น warning แปลว่า key size หรือ algorithm ต่ำกว่ามาตรฐานและควรวางแผนเปลี่ยน
วงจรทั้งหมดใช้เวลาไม่ถึงหนึ่งนาที ซึ่งก็คือเหตุผลที่มันได้ผล เพราะเมื่อการตรวจสอบถูกและง่าย มันจึงเกิดขึ้นจริง
อ่านไฟล์ PEM โดยไม่ต้องใช้ OpenSSL
การรู้ว่าคุณกำลังวางอะไรลงไปช่วยได้มาก PEM หรือ Privacy-Enhanced Mail ไม่ใช่ format ของตัวเอง แต่เป็น base64 ที่ห่อ DER (Distinguished Encoding Rules) เอาไว้ มี header และ footer ครอบอยู่ เมื่อ decode base64 ออกมาคุณจะได้ DER ดิบ ซึ่งเป็นการ serialization โครงสร้าง ASN.1 ในรูป binary ที่กระชับ นั่นคือสิ่งที่ parser ในตัวของเครื่องมือค่อย ๆ เดินไล่ทีละ element เพื่อดึง field ต่าง ๆ ที่คุณเห็น
สำหรับ RSA public key ข้อมูล DER จะมี algorithm OID (ตัวระบุที่ลงทะเบียนไว้ บอกว่า "นี่คือ RSA") ตามด้วย modulus และ public exponent modulus คือตัวเลขจำนวนมากที่ความยาวเป็นบิตของมันก็คือ key size เช่น modulus 256 ไบต์เท่ากับ key 2048 บิต ส่วน exponent เกือบจะเป็น 65537 (0x10001) เสมอ เพราะใหญ่พอจะเลี่ยงช่องโหว่ padding รุ่นเก่าแต่เล็กพอให้การ verify เร็ว ถ้าเจอ exponent เป็น 3 หรือ 1 ใน key ยุคใหม่ถือว่าน่าสงสัยควรตั้งข้อสังเกต
สำหรับ EC key parser จะอ่าน OID ของ curve แล้วแปลงเป็นชื่อที่คุ้นเคย เช่น P-256 (เรียกอีกชื่อคือ secp256r1 หรือ prime256v1), P-384, P-521 หรือตระกูล Curve25519 ความแข็งแรงของ curve ไล่ตามขนาด field โดย P-256 ถือว่าใกล้เคียงกับ RSA 3072 บิต นั่นคือเหตุผลที่ EC key ตัวเล็กสามารถทัดเทียม RSA ตัวใหญ่ได้
เรื่อง key size ฉันทามติปัจจุบันง่ายมาก RSA 1024 บิตถือว่าตายแล้ว การ factor ที่ขนาดนี้อยู่ในมือของผู้โจมตีที่มีทุน และเบราว์เซอร์กับ CA เลิกรับไปนานแล้ว 2048 บิตคือพื้น สำหรับงานใหม่ทั้งหมด และคาดว่ายังใช้ได้สำหรับงานทั่วไปต่อไปในทศวรรษนี้ ส่วน 3072 หรือ 4096 บิตคือเงื่อนไขที่สบายใจ ถ้าอยากได้ key ที่ยังป้องกันตัวได้อีกสิบปี โดยแลกกับความเร็วใน handshake เพียงเล็กน้อย
certificate เพิ่มมิติเรื่องเวลาเข้ามา ช่วง validity ของ X.509 ตั้งแต่ notBefore ถึง notAfter กำหนดว่าการผูก key นั้นถูกยอมรับเมื่อไร และขอบทั้งสองข้างสำคัญ เพราะ notBefore ที่อยู่ในอนาคตอาจเป็นสัญญาณของนาฬิกาเครื่องเพี้ยน หรือบางอย่างที่แย่กว่านั้น จุดที่คนมักสับสนอีกอย่างคือ certificate คือคำรับรองที่ถูกเซ็น "เกี่ยวกับ" public key ไม่ใช่ตัว key เอง และการนำ private key ไปวางในเว็บเครื่องมือใด ๆ นั้นไม่จำเป็นเลยสำหรับการประเมินความแข็งแรง เพราะฝั่ง public บอกทุกอย่างแล้ว ทั้งขนาด algorithm exponent และ curve เครื่องมือนี้ออกแบบมาสำหรับสิ่งนั้นพอดี ย้ำว่าให้วางแต่ข้อมูล public เท่านั้น เป็นนิสัยที่ปลอดภัยและไม่เสียอะไรเลย
กรณีใช้งานจริง
ตรวจ certificate เก่าก่อนหมดอายุ
การรีวิว certificate รายไตรมาสคือที่ที่ key อ่อนมักแอบซ่อน ส่งออก certificate จากบริการที่ไม่ค่อยมีใครดูแล เช่น VPN gateway รุ่นเก่า หน้า admin ของเครื่องปริ้นเตอร์ หรือ dashboard ภายในที่ไม่มีเจ้าของ แล้วรันทีละใบผ่านเครื่องมือนี้ ภายในช่วงบ่ายเดียวคุณจะได้รายการ key RSA 1024 บิต certificate ยุค SHA-1 และช่วง validity ที่จะหมดในเดือนหน้า รายการนั้นกลายเป็นงาน renewal backlog ที่จัดลำดับตามความเสี่ยง แทนที่จะตามอีเมลแจ้งหมดอายุฉบับไหนมาถึงก่อน
ตรวจ key ที่ vendor เผยแพร่
vendor มักเผยแพร่ signing key สำหรับ webhook, ไฟล์ license หรือ SAML assertion โดยเป็นแค่ block PEM เปล่า ๆ บนหน้า docs ก่อนจะ pin key นั้นไว้ ให้วางลงเครื่องมือแล้วยืนยัน algorithm, key size และ verdict ถ้า vendor เผยแพร่ key 1024 บิตสำหรับ webhook การเงิน นั่นคือสัญญาณบอกความเป็นผู้ใหญ่ด้าน security ของเขา และเป็นหลักฐานจับต้องได้สำหรับบทสนทนาที่ตามมา
รีวิว metadata ของระบบ SSO
ตอน onboarding identity provider แบบ SAML หรือ OIDC metadata XML จะมี certificate แบบ X.509 อยู่หนึ่งใบหรือมากกว่า ดึงออกมาใบหนึ่ง วางลง inspector แล้วตรวจ algorithm กับวันหมดอายุก่อนเดินสาย integration เป็นการเช็กสามสิบวินาทีที่ช่วยจับ certificate staging ที่ตั้งค่าผิด token ที่อายุสั้นเกิน และความผิดพลาดคลาสสิกอย่าง "ใครบางคนลืมเปลี่ยน cert ของ tenant ทดสอบออกจาก metadata production"
สาธิตในการอบรมด้าน security
ไม่มีอะไรทำให้เรื่อง key size จับต้องได้เท่ากับการเห็น verdict เปลี่ยนต่อหน้า ลอง generate key 1024 บิตกับ 4096 บิต แล้ว decode ทั้งคู่เคียงกัน ให้ผู้เรียนเห็นเครื่องมือติดป้ายว่าอันหนึ่งถูกถอดรหัสได้ อีกอันแข็งแรง แนวปฏิบัติแบบนามธรรมอย่าง "ใช้อย่างน้อย 2048 บิต" จะกลายเป็นภาพจำที่ติดตัว และทั้งหมดรันแบบ local จึงสาธิตได้แม้ Wi-Fi ในงานสัมมนาจะล่ม
แนวปฏิบัติที่ดี
- ตรวจวันหมดอายุตามรอบ: ใส่การรีวิว certificate ไว้ในปฏิทินรายไตรมาส และครอบคลุมทุก endpoint ที่ให้บริการ TLS หรือใช้เซ็น token ไม่ใช่แค่เว็บสาธารณะ
- ย้ายออกจาก RSA 1024 บิตและ signature แบบ SHA-1: ทั้งคู่หมดช่วงใช้งานอย่างปลอดภัยแล้ว ให้ถือว่าทุกจุดที่เครื่องมือ flag เป็น defect ที่มี deadline ไม่ใช่เรื่องน่าสนใจเฉย ๆ
- เลือก EC (P-256 หรือ P-384) สำหรับงานใหม่: ได้ความปลอดภัยเทียบเท่า RSA 3072 บิตในขนาดข้อมูลเพียงเศษเสี้ยว พร้อม handshake ที่เร็วกว่า คุ้มมากโดยเฉพาะกับ client บนมือถือและ IoT
- รักษา private key ให้เป็นส่วนตัวเสมอ: ตรวจ public key และ certificate ได้อิสระ แต่อย่าเอา private key ไปวางในเว็บเครื่องมือใด ๆ และถ้า private key เคยผ่านระบบที่ไม่น่าเชื่อถือ ให้ rotate ทันที
- ใช้ verdict คู่กับบริบท: certificate ภายในแบบ 2048 บิตที่เหลืออายุอีกห้าปีอาจไม่มีปัญหา แต่ root แบบ 2048 บิตที่ใช้เซ็นโค้ดอาจต้องระวังกว่านั้น ให้ผลจากเครื่องมือเป็นจุดเริ่มของบทสนทนาเรื่องความเสี่ยง ไม่ใช่จุดจบ
- ตรวจซ้ำหลัง rotation ทุกครั้ง: ขั้นตอนเปลี่ยน key พลาดแบบเงียบ ๆ ได้บ่อย การวางแล้วอ่าน verdict สิบวินาทีหลังแต่ละครั้งยืนยันว่า key ใหม่มีขนาดและ algorithm ตรงตามที่ตั้งใจจริง
ลองใช้เลย
ครั้งต่อไปที่ไฟล์ certificate มาปรากฏในกล่องจดหมาย หรือ vendor ส่ง PEM blob มาให้ อย่าเพิ่งเพ่งมอง base64 แบบตาลาย เปิด RSA Key Inspector วาง block ลงไป แล้วรับ algorithm, key size, วันที่ validity และ strength verdict ภายในไม่กี่วินาที ทำงานทั้งหมดในเบราว์เซอร์ของคุณ จด bookmark ไว้เคียงเครื่องมือ security ประจำวัน แล้วทำให้การตรวจ key เป็นนิสัย ไม่ใช่โปรเจกต์
เครื่องมือที่เกี่ยวข้องที่คุณอาจสนใจ:
- SSL Certificate Checker — ตรวจ certificate และ certificate chain แบบสด ๆ ของ domain ใดก็ได้
- SSH Key Fingerprint Checker — เทียบ fingerprint ของ SSH key ก่อนจะเชื่อถือ host
- Hash Generator — คำนวณ MD5, SHA-1, SHA-256 และอื่น ๆ เพื่อตรวจความถูกต้องของไฟล์
ขอให้ปลอดภัยทุกวันครับ!
คำถามที่พบบ่อย
ถ: การวาง public key หรือ certificate ลงใน RSA Key Inspector ปลอดภัยหรือไม่? ตอบ: ปลอดภัยครับ Public key และ certificate เป็นข้อมูลสาธารณะตามธรรมชาติของมัน และเครื่องมือ parse ทุกอย่างในเบราว์เซอร์ด้วย built-in DER parser ล้วน ๆ จึงไม่มีอะไรถูกอัปโหลดไปยัง server ส่วน private key เป็นอีกเรื่อง คุณไม่จำเป็นต้องวางเลย จึงควรเก็บพ้นจากเว็บเครื่องมือทุกชนิด
ถ: วันนี้ควรกำหนดขนาด key ของ RSA ไว้เท่าไร? ตอบ: 2048 บิตคือค่าต่ำสุดที่ยอมรับได้ 3072 หรือ 4096 บิตให้พื้นที่ระยะยาวที่สบายใจ ส่วน 1024 บิตถือว่าถูกถอดรหัสได้และควรเปลี่ยน strength verdict ของเครื่องมือใช้เกณฑ์นี้พอดี คุณจึงไม่ต้องจำเอง
ถ: เครื่องมือตรวจ EC (elliptic curve) key ได้ด้วยหรือเปล่า? ตอบ: ได้ครับ ถอดรหัส EC public key ได้ ระบุชื่อ curve เช่น P-256 หรือ P-384 และให้เกรดความแข็งแรงตามหลักของ elliptic curve โดยเฉพาะ ไม่ใช้กฎขนาดบิตแบบ RSA
ถ: ถ้าไม่มีอินเทอร์เน็ตยังใช้การตรวจ strength ได้ไหม? ตอบ: ได้ครับ การ decode และการให้ verdict ทำงานในเบราว์เซอร์ทั้งหมด เมื่อโหลดหน้าเว็บแล้วไม่ต้องใช้เน็ตเพิ่ม เหมาะกับสภาพแวดล้อมแบบ air-gapped ห้องอบรม และ Wi-Fi งานสัมมนาที่ใช้ไม่ได้