วันพฤหัสบดีที่ 22 กันยายน พ.ศ. 2554

HOTP Truncate Function

จากบทความที่แล้ว เรื่อง HOTP ในภาพ จะเห็นว่า มี Truncate Function นั้นคือ Function ย่อ output ที่มีขนาดใหญ่ ให้มีขยาดเล็กลง...ในที่นี้คือ 160 bit จาก SHA-1 Function ให้เหลือเพียง (6,7,8) ตัวอักษร ตาม HOTP

และต่อจากนี้ผมจะพูดถึง กระบวนการทำงานใน Truncate Function ใน HTOP
ซึ่งอ้างอิงจากเอกสาร RFC 4226 





จากภาพ แสดงการทำงานเริ่มจาก

1.จาก output ของ SHA-1 Algorithm มีขนาด 20 byte array (ช่องละ 8 bit) 
2.หา Offset เพื่อหาตำแหน่งในการคัดข้อมูล
3.หา offset จากดูที่  Array[19] ค่าข้อมูลคือ 0xAD
4.จากนั้นเลือก 4 bit หลัง จาก 0xAD จะได้ค่า 0xD
5.แปลง 0xD เป็นเลขฐาน 10 ดังนั้น 0xD=13
6.จะได้ offset=13 นั้นคือตำแหน่งเริ่มต้นในการเลือกข้อมูล
7.เลือกข้อมูล จาก array ช่องที่ 13 ถึง  16 (เลือกมา 4 ช่อง) จะได้ 0xD3FA10FE
8.นำ 0xD3FA10FE แปลงเป็นเลขฐาน 10 จะได้ 1,039,798,526
9.หา HOTP ได้จากนำ 1,039,798,526 modulo 10 ^ digit (digit คือ จำนวน Output)
10.HOTP ที่ได้ คือ  1,039,798,526 modulo 10 ^ 8 =39798526 **ในที่นี้คือต้องการ output 8 ตัว

เสร็จสินกระบวนการ  Truncate Function คับ

วันอังคารที่ 6 กันยายน พ.ศ. 2554

160 Bit to 6-Word Output in RFC 2289

 เรื่องนี้ก็ไม่เกียวกับ Refresh Com
จาก  A One-Time Password System ใน RFC 2289 หรือ S/Key

เป็นการแสดงการลดจำนวน Bit จาก Function SHA-1 ซึ่งมี 160 Bit ให้เหลือเพียง 64 Bit และแปลงให้เป็น 6 Word Output..
160 Bit to 64 Bit Function in S/Key










Output the standard 6-word encoding




สองรูปนี้กว่าจะวาดออกมาได้ ยากลำบอกแสนเข็น..เก็บไว้เป็นเครื่องหมายเตือนจัย..

An HMAC-Based One-Time Password Algorithm (HOTP)

บทความนี้อาจจะไม่เกี่ยวกับ Refresh Com เท่าไร แต่..เขียนไว้เป็นความรู้นะคับ
แสดงการทำงานของ HOTP

HOTP ได้มีการพัฒนาขึ้นบนพื้นฐานของ HMAC เพื่อทำ One Time Password (OTP) ที่สร้างขึ้นจาก Client และตรวจสอบความถูกต้องกับ Server ได้
การออกแบบ HOTP ทำให้สนับสนุนการใช้อุปกรณ์ (Token) ในการยืนยันตัวตนได้ ซึ่งสามารถอธิบายในภาพประกอบ  คือ   
             
1. HOTP Client จะต้องมีการจัดเก็บ Master Key เพื่อในการเข้ารหัสด้วยกระบวน Symmetric Key Encryption
2. HOTP Client สร้างตัวนับ (Counter) เพื่อสร้างข้อมูลที่มีการเปลี่ยนแปลงตลอดเวลาซึ่ง Counter นี้จะเพิ่มขึ้นเสมอดังนั้นข้อมูลทำไปใช้นั้นจะเปลี่ยนแปลงตลอดจาก Counter
3.  นำ Key ที่ได้จาก ขั้นตอนที่1 มาเข้ารหัสข้อมูล Counter จะได้ Message ในขึ้นตอนนี้จะเห็นได้ Message ที่ได้ทุกๆ ครั้ง จะเป็นข้อมูลใหม่เสมอ หากพิจารนาจากขั้นตอนที่ 2 และ
4. นำ Message ที่ได้เข้าสู่ SHA-1 Hash Function จะได้ Message Digest (MD) โดยมี Output ทั้งหมด 20 Byte ตามมาตรฐานของ SHA-1
5. Message Digest (MD) ที่ได้เข้าสู่ HOTP Truncate Function เป็น Function ที่ต้องการลดจำนวนOutput Bit จาก 20 Byte ให้เหลือเพียง 4 Byte เพื่อนำที่ได้ Output ที่ได้มาแปลงเป็น OTP ที่มีลักษณะเป็นตัวเลข 6 ตัว อักษร ซึ่งขั้นตอนประมวลผล Output สามารถดูรายละเอียดได้ในหัวข้อที่ 5.3 และ 5.4 ในเอกสาร RFC 4226
6. เมื่อ Server ได้รับ OTP จาก Client ทางฝั่ง Server เองก็จะมีขั้นตอนเช่นเดียวกันกับ Client ทุกประการ นั้นคือใช้ Key และ Counter ตัวเดียวกันกับ Client โดย Counter นั้นจะเพิ่มขึ้นตลอดทุกๆครั้งที่มีการร้องขอเพื่อยืนยันตัวตน นำข้อมูลที่ได้จาก Client มาเปรียบเทียบ กับข้อมูลที่ Server สร้างขึ้น หากตรงกันก็แสดงว่าผู้ใช้ยืนยันตัวตนถูกต้อง 

จากการทำงานของ HOTP จะสังเกตเห็นได้ว่าทำงานดังกล่าวสามารทำงานอยู่ได้อยู่บน Token Authentication แบบต่างๆ ที่สามารถเพียงจัดเก็บ Master Key และประมวลผลทางคอมพิวเตอร์ได้ พร้อมกับมีหน้าจอแสดงผลที่เป็นเพียงตัวเลขเท่านั้น

...อ่าน แล้ว งง...55++ 
 และในความสำคัญ ของ HOTP คือ Truncate Function ซึ่งสามารถแสดงละเอียดในบทความ "Truncate Function" ได้ตาม link เลยครับ

ไอทีอัพเดท

บอร์ด Technical Zone พันทิปดอทคอม

ข่าวเกม

วาไรตี้ฮอต