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

ยุคนี้ 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 ใ...

การลง Window 10 ใน MacBook โดยใช้ Boot Camp

การลง Window 10 ใน MacBook โดยใช้ Boot Camp สร้างอิมเมจ ISO สำหรับ Boot Camp จากสื่อติดตั้ง Windows Boot Camp Assistant User Guide การติดตั้ง Windows 7 บน Mac ของคุณโดยใช้ Boot Camp ใช้ Windows 8.1 บน Mac ด้วย Boot Camp ติดตั้ง Windows บน Mac ของคุณโดยใช้ Boot Camp How to install Windows 10 on your Mac using Boot Camp How to install Windows on your Mac using Boot Camp How to Install Windows on a Mac With Boot Camp Install Windows on your Mac with Boot Camp Boot Camp Support Software 5.1.5621 Install Windows on your Mac with Boot Camp How to Dual Boot Mac OS X El Capitan with Windows 10

Pentaho

Pentaho คืออะไร ? Pentaho (Link) เป็น software แบบ Businese Intelligence (BI) ที่นำมาช่วยในการวิเคาะห์ข้อมูลหลายๆฐานข้อมูล ออกมาในรูปแบบต่างๆ เช่น กราฟ , ตาราง หรือใบรายงานผล เป็นต้น ซึ่งจะช่วยให้ธุรกิจที่กำลังที่จะดำเนินงานหรือดำเนินงานไปแล้วสามารถมองเห็นถึงข้อมูลที่ต้องการทราบว่าไปในทิศทางไหน เพื่อให้ผู้ใช้งานหรือธุรกิจนั้นๆ สามารถวางแผนการทำการตลาดได้แม่นยำมากขึ้นและมีข้อมูลที่สามารถใช้เป็นข้ออ้างอิงได้ จากที่ได้ศึกษาผมขอแบ่งส่วนต่างๆ เป็น 3 ส่วน คือ 1.       1.  ส่วนของการทำ ETL (Extract, Transform and Load) เป็นส่วนของการเริ่มกระบวนการทั้งหมด คือการนำข้อมูลที่อยู่ในฐานข้อมูลหรือไฟล์ข้อมูลในรูปแบบต่างๆ ไม่ว่าจะเป็น MySQL, Excel, Text File ฯลฯ มาปรับให้เป็นชุดข้อมูลในรูปแบบเดียวกัน 2.      2.   ส่วนของ Data Warehouse เป็นการนำข้อมูลที่ได้จากกระบวนการ ETL มาทำชุดข้อมูลในลักษณะของ Cube ข้อมูล 3.       3.  ส่วนของ Output ซึ่งจะออกมาได้ทั้งในรูปแบบ OLAP, Reporting หรืออื่นๆ เครื่องม...