ค้นหาบทความ

โพสต์แนะนำ

ย้าย Blog ไปที่ TechDiary

วันพุธที่ 9 ตุลาคม พ.ศ. 2556

ทำความเข้าใจการทำงานของ SSL, HTTPS กันดีกว่า


ก่อนที่จะทำความเข้าใจการทำงานของ SSL ต้องทำความรู้จักกับการเข้ารหัสแบบ Private Key/ Public key นิดนึงก่อน ก็คือ ข้อมูลที่ถูกเข้ารหัสด้วย Public key ใดๆ จะสามารถถอดรหัสได้โดยใช้ Private key ที่ถูกสร้างขึ้นมาคู่กันเท่านั้น (ใช้ Public key ที่ใช้เข้ารหัส มาถอดรหัสกลับก็ไม่ได้)

ต่อไปจะยกตัวอย่างการใช้ SSL กับโปรโตคอล HTTP (จริงๆ แล้วใช้กับโปรโตคอลอื่นเช่น FTP ก็ได้) โดยจะมีผู้ที่เกี่ยวข้องหลักๆ 3 ฝ่าย ดังนี้

-          ผู้ใช้ หรือ User หรือสำหรับในที่นี้ คือ Web Browser (IE, Firefox ฯลฯ) นั่นเอง (เพราะเรากล่าวถึง HTTP หรือการใช้งานเว็บไซต์)

-          ผู้ให้บริการ หรือ Web Server หรือเครื่องคอมพิวเตอร์ที่คอยส่งหน้าเว็บให้เราดูนั่นแหละ ต่อไปเรียกย่อๆ ว่า Server หรือผู้ให้บริการ

-          บริษัทที่ออก Certificate ให้ผู้บริการ หรือ Certificate Authorities ซึ่งต่อไปจะเรียกว่า CA

เรื่องเริ่มจาก ผู้ให้บริการ อยากจะให้เกิดความปลอดภัยในการสื่อสารข้อมูล (ผ่านเว็บ) กับ ผู้ใช้ และทำให้เว็บดูน่าเชื่อถือด้วย โดยที่ผู้ให้บริการ จะดำเนินการดังนี้

1.       ผู้ให้บริการ ทำการสร้าง “Private” key ของตัวเองขึ้นมาบน Web Server (แต่ละ OS/Server จะมีขั้นตอนการสร้างที่ต่างกัน)  แล้วจะได้ข้อมูล Private Key และรายละเอียดต่างๆ เรียกว่า Certificate Signing Request (CSR)

2.       ผู้ให้บริการ ส่ง Private Key ที่สร้างขึ้นมาให้กับ CA เพื่อขอ “Public” Key ที่คู่กัน (CA ตรวจสอบว่าผู้ให้บริการเป็นเจ้าของ web จริง แล้วสร้าง Public Key ที่คู่กัน แล้วเก็บเงินค่าบริการกับผู้ให้บริการ $$$)

3.       CA ส่ง Public Key ที่สร้างขึ้นกลับไปให้กับผู้ให้บริการ (โดย Public Key ที่ส่งกลับไปจะถูกเข้ารหัสด้วย Private Key ของ CA เอง)

4.       ผู้ให้บริการ ทำการติดตั้ง Public Key ที่ได้จาก CA ลงบน Web Server (จะต้องเป็นเครื่องเดียวกับที่สร้าง CSR)


ทีนี้มาดู เมื่อ Web Server ติดตั้ง Certificate เรียบร้อยแล้ว และสามารถใช้โปรโตคอล HTTPS (HTTP over SSL) ได้แล้ว มาดูการว่า มันจะ Secure ยังไง

สมมุตติ Web Site ของผู้ให้บริการคือ http://xyz.com เมื่อมีผู้ใช้ต้องการใช้งาน web โดยผ่าน SSL จะมีขั้นตอนต่อไปนี้

1.       User (หรือ Browser) ส่ง request ไปที่ https://xyz.com  (สังเกตว่าจากเดิมใช้ http ตอนนี้เป็น https)

2.       Server ส่ง Public Key กลับมาให้ User (Browser) และเป็นหน้าที่ของ Browser ที่จะตรวจว่า Public Key ที่ส่งมา ได้มาจาก CA ที่เชื่อถือได้ ละยังไม่หมดอายุหรือไม่

3.       ถ้าเชื่อถือได้ Browser จะสร้าง random key ขึ้นมา (ตอนนี้ browser เท่านั้นที่มี random key นี้) แล้วเข้ารหัสด้วย Public Key ที่ได้จาก server แล้วส่งกลับไปให้ Server

4.       เมื่อ Server ได้รับ random key (ที่ถูกเข้ารหัสไว้) และสามารถถอดรหัสออกมาได้ (โดยใช้ Private key บน server) ก็แสดงว่าเป็นเจ้าของ public key ที่ส่งไปให้ browser จริง และตอนนี้ มีแค่ server กับ browser เท่านั้นที่รู้จัก random key นี้

5.       จากจุดนี้ไป การสื่อสารระหว่าง User (Browser) กับ Server จะใช้ random key นี้ในการเข้าระหัสและถอดรหัส ซึ่งบางที random key นี้เรียกว่า Session Key

*** จะเห็นว่า Public Key กับ Private Key ของ Server นั้น จะไม่ถูกใช้ในการเข้าหรือถอดรหัสข้อมูลจริงๆ หลังจากที่มี session key แล้ว เนื่องจากกระบวนการเข้า/ถอดรหัส ใช้เวลามากกว่านั่นเอง หรือพูดง่ายๆ ก็คือ Public/Private key ใช้ในการเข้า/ถอดรหัสเพื่อ ส่ง session key จาก Browser ให้กับ Server อย่างปลอดภัยเท่านั้น***

วันจันทร์ที่ 7 ตุลาคม พ.ศ. 2556

Internet Explorer (IE) 11 มาให้ลองแล้ววว

ลองเลย เห็นว่าเร็วกว่าชาวบ้าน ตอนนี้เป็น Preview Release

http://windows.microsoft.com/en-us/internet-explorer/ie-11-worldwide-languages

วันศุกร์ที่ 27 กันยายน พ.ศ. 2556

Install GNOME บน FreeBSD 9.x



Installing GNOME2

# portsnap fetch
# portsnap extract
# portsnap update
# pkg_add –r xorg
# pkg_add –r gnome2
# ee /etc/fstab
                <append line> proc  /proc  procfs  rw  0  0
#  ee /etc/rc.conf
                <append under sshd_enable and before moused_enable>
                hald_enable=”YES”
                debus_enable=”YES”
                gnome_enable=”YES”
gdm_enable=”YES”
<reboot>

วันจันทร์ที่ 29 เมษายน พ.ศ. 2556

"Attached the Script debugger to process '[1234] iexplore.exe' on machine 'computer-name' failed. A debugger is already attached."

อาการ:
 เวลารัน Project ใน Visual Studio เกิด error :

"Attached the Script debugger to process '[1111] iexplore.exe' on machine 'computer-name' failed. A debugger is already attached."

(เจอใน VS2010 ที่มี VMWare Workstation 9 debugger add-in for visual studio) 

แต่ click OK แล้วรัน/ดีบัก ได้ปกติ

การแก้ (ของผมลองวิธีแก้นี้บน  Windows-7 x64) :

รัน cmd.exe แบบ แอดมิน (Start -> All Program ->Accessories แล้ว click ขวาที่ Command Prompt แล้วเลือก 'Run as administrator')

พิมพ์ หรือก็อปปี้/เพสท์ :  regsvr32.exe "%ProgramFiles(x86)%\Common Files\Microsoft Shared\VS7Debug\msdbg2.dll

แล้วกด Enter


Credit : http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/bbf26b82-5d00-4472-9bc4-be77a1fc8e9e/
 

วันพุธที่ 27 มีนาคม พ.ศ. 2556

โปรแกรมกันเด็กป่วน (lock keyboard)

หลายๆ ครั้งที่ลูกสาววัยสามขวบ ขอให้เปิดการ์ตูนในคอมฯ ให้ดู พอเปิดแล้วจะเผลอไม่ได้เลย เพราะเค้าจะกดโน่นนี่นั่นบนคีย์บอร์ดเล่นจนการ์ตูนหาย จนต้องมาเปิดให้ดูใหม่
เลยอยากแนะนำโปรแกรมเล็กๆ ตัวนึง ที่ช่วยให้เรา lock คีย์บอร์ดง่ายๆ ด้วยการกด Ctrl+Alt+L
และหากอยากปลด lock ก็แค่พิมพ์คำว่า unlock บนคีย์บอร์ด แค่นี้ก็กันเจ้าตัวน้อยจอมป่วนได้แล้วครับ

รายละเอียด/ดาวน์โหลด: http://www.howtogeek.com/howto/11570/disable-the-keyboard-with-a-keyboard-shortcut-in-windows/