Writeup - RSA return (ROCA: Tấn công khôi phục các khóa RSA)

Thảo luận trong 'Thảo luận các cuộc thi CTF khác' bắt đầu bởi tmnt53, 28/02/18, 04:02 PM.

  1. tmnt53

    tmnt53 Moderator Thành viên BQT

    Tham gia: 25/04/15, 09:04 AM
    Bài viết: 127
    Đã được thích: 94
    Điểm thành tích:
    28
    Năm nay 2018, EasyCTF IV có một bài Crypto hay, áp dụng lỗ hổng ROCA mới được phát hiện trên hệ mã hóa RSA. Đã có bài viết chi tiết về lỗ hổng ROCA trên Whitehat: https://whitehat.vn/threads/lo-hong...oa-rsa-ca-nhan-tren-hang-trieu-thiet-bi.9680/
    Tool neca được sử dụng có thể phá mã RSA 512bit trong khoảng nửa tiếng.

    Đề bài:
    ===========================================================================
    n = 9637828843823500407917687664441327784714605952794831018467094508166140790258515855681653788687192363262499178812675284846293988948568322307302995971433129
    e = 65537
    c = 744372384092422293657230440929981477879274068697788092531354927993093987582083018137886004402518974542009040817374858469786477527000745005045012289929736
    ===========================================================================

    Cách làm:
    Để giải bài này, ta phải phân tích n ra p và q. Tuy nhiên đây là số 512 bit, vượt tầm các tool phổ biến như yafu (phân tích được n với kích thước 256 bit thôi).
    Khi liên hệ đến lỗ hổng ROCA mới đây, ta sử dụng công cụ roca-detect để xác định xem n có bị nguy cơ trước lỗ hổng này không.
    Tool: https://github.com/crocs-muni/roca
    Để kiểm tra được, ta phải tạo ra file PEM public key tạo từ n và e.
    Sử dụng script sau để tạo file PEM rsareturn.pub:
    upload_2018-2-28_17-8-27.png
    Detect:
    upload_2018-2-28_16-36-59.png
    => Có khả năng có lỗ hổng Roca
    Sử dụng tool neca (https://gitlab.com/jix/neca) để thực hiện decrypt:
    upload_2018-2-28_16-40-10.png

    Sau hơn nửa tiếng, ta đã có được p và q:
    p = 121588253559534573498320028934517990374721243335397811413129137253981502266611
    q = 79266117915777331935558561759105375936182700866258172021902853781249206532339
    => Ta sử dụng script sau để giải mã cipher text:
    upload_2018-2-28_17-9-56.png
    upload_2018-2-28_16-56-21.png

    Flag: easyctf{4b8xofjwvy4rqkbuba}

    Link tham khảo:
    + Writeup gốc: https://ctftime.org/writeup/8805
    + Cấu trúc file PEM public key: https://www.ietf.org/rfc/rfc2313.txt
    + Tạo file PEM từ public key: https://crypto.stackexchange.com/questions/25498/how-to-create-a-pem-file-for-storing-an-rsa-key
    + Giải mã RSA từ p, q, e: https://crypto.stackexchange.com/questions/19444/rsa-given-q-p-and-e
     

    Các file đính kèm:

    Chỉnh sửa cuối: 28/02/18, 04:02 PM
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
    Sugi_b3o and whf like this.