ข้ามไปที่เนื้อหาหลัก

ยุคนี้ HTTPS คงยังไม่พอ มันต้อง #HSTS (extra security over HTTPS) มาตรฐานใหม่อินเทอร์เน็ต ที่ควรรู้

ยุคนี้ HTTPS คงยังไม่พอ มันต้อง #HSTS (extra security over HTTPS) มาตรฐานใหม่อินเทอร์เน็ต ที่ควรรู้


เมื่อก่อนเราใช้ HTTP protocol ในการสื่อสาร ข้อเสีย ที่ชัดเจนเลยคือ หากโดนดักข้อมูล จะดักแล้วอ่านออกมาได้หมดแบบชิวๆเลยแหล่ะ
คราวนี้มันเลยเกิดทางสวรรค์ขึ้นมา คือ HTTPS เพื่อให้มีการเข้ารหัสระหว่างการรับส่งข้อมูล แต่ก็นั่นแหล่ะครับ มันก็มีคนผู้คิดค้นหาวิธีได้อีก ซึ่ง SSLstrip เป็นหนึ่งในวิธีที่นิยมใช้กันในการทำ Man-in-the-middle เพื่อดักข้อมูล โดยหั่น https ออกระหว่างทางให้กลายเป็น http แล้วคราวนี้ attacker ก็แอบอ่านได้เลยทันที
อีกทั้งปัญหา Mixed content อีกบางเว็บ url เป็น https จริง แต่ดันฝังรูป js css หรือมีคนหลอกโพสต์ link ให้คลิกกลายเป็น http ธรรมดา cookie ก็หลุดอยู่ดี
เลยมีเจ้านี่ขึ้นมา แท่มมม
มาตรฐานอินเตอร์เน็ตออกใหม่มาชื่อ HTTP Strict Transport Security (HSTS)
ถ้าแปลตรงตัวเลย Strict ก็คือ เข้มงวด
Transport Security ก็คือ การส่งมูล
ดังนั้นรวมๆก็ควร การส่งข้อมูลแบบเข้มงวดขึ้นโดยฝั่ง Server จะบังคับให้ Web Browser คุยผ่าน HTTPS เท่านั้น
มาดูกันดีกว่า ว่ามันทำงานยังไงจะได้เห็นภาพมากขึ้น
ปกติการขอ Request ระหว่าง Client กับ Web Server จะเป็นลักษณะดังนี้
HTTP — —Request — -> Web Server
HTTP <— —Response — - Web Server
HTTP — — Request — -> Web Server
HTTPS < — —Response — — Web Server
HSTS จะสนใจแค่เคสนี้ :
HTTPS — — Request — -> Web Server
HTTPS < — —Response — — Web Server
“ถ้าเธอจะคุยกับเราอ่ะ เธอมาแบบธรรมดา (HTTP) เราไม่คุยน่ะ ไปทำตัวเองให้ปลอดภัยมาก่อน (HTTPS) ตั้งแต่แรก แล้วเราค่อยมาคุยกันใหม่ (Policy Enforcement)”
แล้วคราวนี้มันจะไปบอก Web server ได้ไงล่ะ ว่าไม่ให้มาคุย HTTP แล้ว
สิ่งที่ทำได้คือ ใช้ Header ของ Response เวลาส่งกลับไปบอก
มาดูตัวอย่าง HSTS header กันดีกว่า ปกติจะมี Parameter หลายตัว แต่ส่วนใหญ่ก็จะใช้กันลักษณะประมาณนี้

Strict-Transport-Securitymax-age=63072000; includeSubDomains; preload

โดยจะระบุเลยว่า
1. ต้องคุยกันแบบเป็น Strict-Transport-Security เท่านั้นนะ ต้องปลอดภัยน่ะ
2. max-age = บังคับใช้ HSTS อยู่กี่วินาที หลัง Request ไป เช่น ส่ง header กลับไปบอกว่า 1 ปี แสดงว่า Server จะไม่คุย HTTP กับ Web Browser เลย เป็นเวลา 1 ปี Browser ก็จะจำแล้ว Count Down ลงไปเรื่อยๆ จนกว่าจะหมดเวลา พอหมด ก็ส่งไปใหม่เป็น Loop เดิม
3. includeSubDomains บอกว่า หลังจากนี้ถ้าจะคุยกับ Sub Domains ของเรา ก็ต้องคุยแบบ HSTS ด้วยน่ะจ๊ะ
HSTS:
HTTP — — Request — -> Server (Nooooooooooooooooooo!)
HTTP < — — ส่งมาใหม่นะหนู๋ มาแบบ HTTPS น่ะ — — Server
HTTPS— — Request — -> Web Server (Oh Yessssssss!)
HTTPS < — — อยากได้นี่ใช้ไหม อ่ะทางปลอดภัยแล้ว เราส่งให้— — Server
อย่าลืมว่า Server ต้องใส่ SSL ถูกต้องแล้วด้วย และเปิด port 443 HTTPS
หากถามว่ามี Browser ไหนรองรับแล้วยัง ล่าสุด browser หลัก ทำงานได้หมดทุกตัว


ต่างประเทศก็ทยอยทำไปเรียบร้อย ล่าสุด .gov ของอเมริกาทำ HSTS ใส่ใน browser กันแล้ว รวมถึง Facebook, Twitter, Google ก็มาครบเรียบร้อย
.gov


google

facebook
ส่วนในไทย ก็เห็นมีมาเรื่อยๆ เยอะขึ้นแล้วครับ ดูได้จากที่ส่งมาเช็คกับ Google Preload List พอหาดูเจอ ที่คุ้นๆ เช่น https://blognone.com , https://www.wpthaiuser.com/ กับ .co.th อีกประมาณ 12 บริษัท
ส่วนตัวคิดว่าในเว็บที่มีรับส่งข้อมูลปลอดภัยสูง ก็ควรจะบังคับใช้ HSTS ได้แล้ว อนาคตต่อไปจะเป็นต่อไปก็ต้องรอดูกัน
ปล. สำหรับ nexthop.co.th เองเราก็เปิด HSTS แล้ว ส่งข้อมูลไปแล้ว และมีชื่อใน Preload List (บรรทัดที่ 50147)



ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

วิธีใช้ Google Form ส่งข้อความเข้า LINE Notify

วิธีใช้ Google Form ส่งข้อความเข้า LINE Notify           ขั้นตอนต่อไปนี้จะข้ามส่วนของรายละเอียดบางอย่างไป ซึ่งก่อนจะทำตรงนี้ควรจะรู้แล้วว่า LINE Notify ใช้ทำอะไร และ Access Token จะเอามาจากไหน แต่จะพยายามอธิบายให้ครอบคลุมที่สุดก็แล้วกัน Update: 2019/06/10 ในท้ายบทความได้เพิ่มคำอธิบายเรื่องการส่งข้อมูลหลายกล่องข้อมูล (คอลั่ม) พร้อมกับ code ที่วนลูปข้อมูลทุกกล่อง เพื่อความสะดวกในการส่งข้อมูลในรูปแบบเดิม สร้าง Google Form วิธีสร้างก็ง่ายแสนง่าย เข้าไปที่  https://docs.google.com/forms  จากนั้น คลิกตรงเครื่องหมาย + ตามภาพ จะได้ form หน้าตาแบบนี้มา แก้ไขตามสะดวกเลย ตัวอย่างเอาแบบนี้แล้วกัน จะลองส่งข้อความคลิกที่รูป “ตา” พิมพ์ข้อความอะไรก็ได้ แล้ว กด Submit โลด กลับไปหน้า Form ของเราใน tab แรก มันก็จะมี RESPONSES เข้ามา เมื่อคลิกดูก็จะพบข้อความที่เราเพิ่งพิมพ์ไปเมื่อตะกี้ ใส่ code ใน Script Editor คลิกที่ จุด 3 จุด ด้านขวาบน แล้วเลือก  <> Script Editor จะพบหน้าเปล่าๆ ที่ไม่คุ้นเคย ตรงนี้แหละที่เราจะมาใส่ code ใ...

ทำความเข้าใจ LM, NTLM, NTLMv2

ทำความเข้าใจ LM, NTLM, NTLMv2  วันนี้เราจะมาทำความเข้าใจเกี่ยวกับรูปแบบการเก็บ password ของ Windows โดยแต่ก่อนจนถึงปัจจุบันก็มีพัฒนาการมาเรื่อยๆครับ ซึ่งจะเริ่มจาก LM (Lan Manager) hash โดย LM นั้นเป็นรูปแบบดั้งเดิมในการเก็บ password ของ Windows ตั้งแต่ยุค 1980 ซึ่งในช่วงนั้นยังมีจำนวน charset ที่ยังจำกัดอยู่(16-bits characters) ซึ่งทำให้การ crack password นั้นทำได้ง่ายมากโดยดึงจาก SAM database บน Windows หรือว่า NTDS บน Domain Controller (Active Directory) ได้เลย โดยขั้นตอนการเปลี่ยน password อยู่ในรูปแบบ LM hash คือ เปลี่ยนอักษรทั้งหมดเป็นตัวใหญ่ หากตัวอักษรไม่ครบ 14 ตัวอักษรก็จะเติมตัวอักษรทั้งหมดให้เต็มด้วย NULL characters แบ่งเป็น 2 กลุ่ม กลุ่มละ 7 ตัวอักษร สร้าง DES key จาก character 7 ตัวทั้ง 2 กลุ่ม ก็จะได้ DES key 2 ชุด (ชุดละ 64 bit) นำ DES key ไปเข้ารหัส static string “KGS!@#$%” ด้วย DES (ECB) นำ encrypted strings ทั้ง 2 อันมาต่อกัน ก็จะได้เป็น LM Hash เช่น สมมติ password เป็น password password => password000000 PASSWORD000000 PASSWOR...

OC และเซตค่า RAM ในระบบ Ryzen ได้ง่ายๆ ด้วยโปรแกรม DRAM Calculator for Ryzen

OC และเซตค่า RAM ในระบบ Ryzen ได้ง่ายๆ ด้วยโปรแกรม DRAM Calculator for Ryzen สำหรับใครที่ใช้ซีพียู Ryzen นะครับ ผมเชื่อว่าต้องมีหลายคนที่ปวดหัวกับเรื่องแรม นอกจากจะเป็นเรื่องการเลือกแรมให้ถูกรุ่นแล้ว  ยังมีเรื่องของการตั้งค่าแรมในไบออสอีก แต่วันนี้ผมมีโปรแกรมแนะนำที่ชื่อ  DRAM Calculator for Ryzen  เพื่อใช้ในการปรับตั้งค่าไบออส ให้ระบบสามารถทำงานร่วมกับแรมได้อย่างมีประสิทธิภาพ แถมยังใช้ในการ OC แรมได้ด้วยนะ โปรแกรมที่จำเป็นต้องใช้นะครับ จะมีอยู่ 2 โปรแกรม คือ DRAM Calculator for Ryzen  ( ลิ้งค์ดาวน์โหลด ) Thaiphoon Burner  ( ลิ้งค์ดาวน์โหลด ) แนะนำให้ทุกคนอัปเดตไบออสตัวล่าสุด ก่อนการใช้งานนะครับ จะได้เรียกประสิทธิภาพจากไบออสได้อย่างเต็มที่ เมื่อดาวน์โหลดโปรแกรม และแตกไฟล์เรียบร้อย ขั้นตอนแรกเราต้องเช็คข้อมูลแรมของเราก่อน ด้วย  Thaiphoon Burner  เปิดโปรแกรมขึ้นมาเลยครับ ( คลิกขวาที่โปรแกรม แล้วเลือก Run as Administrator นะครับ ) จากนั้นให้เลือก  Read  และเลือก  Read SPD  อันแรก ข้อมูลของชิปแรมก็จะปรากฏให...