Điểm:1

Tệp .Cert của Samsung - Tìm hiểu sâu hơn

lá cờ cn

Tôi không biết liệu tôi có nên đặt câu hỏi này trong Trao đổi ngăn xếp Android hoặc ở đây, nhưng tôi chắc chắn rằng tôi đang ở đúng nơi để hỏi.

Câu hỏi của tôi là về tệp Chứng chỉ Samsung sau đây:

Tên tệp: I9301I-357537065876500.cert

[chứng chỉ] 
Mô hình=GT-I9301I
IMEI=357537065876500
SerNo=S200013955 
ImeiSign=75779BA6B9FF5269A6828F2EAB02049B874169ACE705F5B6187EFE5F91B619E4D23EC50D7AED63D3F570766B6E03C9A416FC4B760329F43F3C06FF2B5404922BE64B7FAA457B11F3840057E8ED4160537C241B89B36B48842A78D9B5EB359820A8A44DFB1AD9021D5920AD8B856558740CDC8ECDD1981ADEA9ED81873F989221322A2CD8D8FF7DA19DEDABADF2E00D0BC7D1A8331A6C3904CCA8CF7EB97F4413496CC50966ECB12012DAB689EBEFF23ED3C5E48944675E4488A501BE5BF44DBAD20F035E3C5A0E4E7C32653061EB5E8ACA4B26480A19DC3F02EB881A0ED2BE64522228FFCA66B335FECF7DD9113AEE9067DB8AEBB751528A4E9A6B4DF07AF9F1

PubKey=4000000025A3C38C533FFC73439ED6110A953784B1489FAABCC5050059FFB62E6FED9602EEE2752285681D3F888D47E44D509865B76E6CE2D0CCC53928BD9C220792A8B6EC3D7EDA75364B7D3E2057F20CBA44E75C1057D0E85A0BE9C873AFB740ECD20B9BF1CC22CA167A4AC850ADF41CFBDC924A1A8EEBB603274584B50EEA786EB184C5284EDAAF79D8F15BD9A559A4F4A11D11478BA7259182EB2561C6C05BC587C491A60206689BFCE7A463617A7DE64FAF4493D12245BFA9523D58508FC8543E8868AB9C506DA1379BE2954AA35397B2ADA75518F158D5FB691BA8A6309266A714C9A22ACBA4693DC5B2848E45611E0E712FC577A3A50B21B6095744B28FDCD149ADD9F0935367F7FC9D79C3237791D74AD38A47846A117571D91802AE3261DD971ECD968454AD397DE1F413C430EAB7A2B3B1A3B9C94AC031B11B3233F49BD7A165E3D603C3FA274F1F10BE6A3112305F47EFDE511627CDA0010D90F35A90689041384F4FA83BADB8CA8AD523470DF9C556A07E05FC7E33FB945C46EE29BA9082E6C970BE5AFF147750029FD0B51A8CE71BF5F25E6076F02B0AB01DE8F8E742D0CA855E9D89EF6CFEEB41EE819E21256B8E1A1AF25C47E904BACBB891C7C0D173A40F0B4A727DF7F273EDCD2A0B2728BEC9A986259866676E1B1EE743D20D08F977D1AAAEAD3CDD4CECF6B1E0A C67C8CE0F158C1093CE04B7F4E6E4B77B1D05BB1832923B

PubKeySign=719D9FE450D96A5DCFCD05FAC2DD88CD4222D30D396CB1760EF9C3024E7EC686F45C44AA6D1ED4648733389C5945130F567949A7E55419B1765B4FC0B829F4487528CC85AE552E6F3A8759B25C95AE658F1E4C578178230A738B46409A65213DB4246B0A1A7888A4EB72D545F85613309E1C6696AC6C8123566450193594625292AF269BBE1A89A8B77B49C0E65D59910BE886B0A5B1A3A8F5A2595158FC10B408800E840FCE78EA9835B5085D3CCE3DC36FA92DAB7C1373DC563599F32E61C6ED85DA4C0708EF0743FAC5A08904F097BC782FE92102BC511D014806CCEAD4D1EF860A415E3DFE578431513E49E7CC99B7F17852FDFF2EBB75163968E09B67AE

Tệp được tải xuống từ đây

Một cuộc thảo luận mà tôi tìm thấy đây nói, tập tin chứng chỉ này là

Imei Chứng Nhận Là RSA 512

Một người dùng khác nói:

Hoàn toàn sai! Chứng chỉ Imei là rsa 2048.

Câu hỏi của tôi là làm thế nào để tôi biết nếu nó là 512 hoặc 2048 cũng như các bước để tạo tệp chứng chỉ của riêng chúng tôi theo các tham số đã cho: Kiểu mẫu IMEI SerNo

Điểm:5
lá cờ in

Tôi tìm thấy một mô tả về định dạng của khóa công khai đây được đăng bởi Victor từ Blagoevgrad tại GSMHosting.com. Như đã đề cập trong các nhận xét, cả hai kích thước chữ ký cũng là 2048 bit, vì vậy điều đó khá thuyết phục.

Dưới đây là nội dung bài đăng của thông tin trong liên kết:

#define RSANUMBYTES 256 /* Độ dài khóa 2048 bit */
#define RSANUMWORDS (RSANUMBYTES / sizeof(uint32_t))


typedef struct RSAPublicKey {
    int len; /* Độ dài của n[] trong số uint32_t */
    uint32_t n0inv; /* -1 / n[0] mod 2^32 */
    uint32_t n[RSANUMWORDS]; /* modul dưới dạng mảng endian nhỏ */
    uint32_t rr[RSANUMWORDS]; /* R^2 dưới dạng mảng endian nhỏ */
    số mũ int; /* 3 hoặc 65537 */
} RSAPublicKey;

tôi phát hiện ra rằng có một modexp3 trong phần còn lại của mã nguồn mà được thực hiện hiệu quả hơn sử dụng n0invrr các giá trị, vì vậy số mũ công khai có giá trị 3 (có vẻ như nó bị thiếu trong cấu trúc, vì vậy tôi đoán rằng phần đó không được dùng nữa).

Có thể sự nhầm lẫn đến từ 40 00 00 00 giá trị thập lục phân ở phía trước; cái này mã hóa 64 khi được coi là giá trị cuối nhỏ. Tuy nhiên, nó không có nghĩa là 64 byte: 64 * 8 = 512, mà là 64 từ, trong đó mỗi từ là 32 bit, tức là gấp 4 lần cho 2048 bit.

Điều này có nghĩa là mô đun có giá trị sau - tính bằng big endian:

93f0d9ad49d1dc8fb2445709b6210ba5a377c52f710e1e61458e84b2c53d69a4cb2aa2c914a7669230a6a81b69fbd558f11855a7adb29753a34a95e29b37a16d
509cab68883e54c88f50583d52a9bf4522d19344af4fe67d7a6163a4e7fc9b680602a691c487c55bc0c66125eb829125a78b47111da1f4a459a5d95bf1d879af
da4e28c584b16e78ea0eb584452703b6eb8e1a4a92dcfb1cf4ad50c84a7a16ca22ccf19b0bd2ec40b7af73c8e90b5ae8d057105ce744ba0cf257203e7d4b3675
da7e3decb6a89207229cbd2839c5ccd0e26c6eb76598504de4478d883f1d68852275e2ee0296ed6f2eb6ff590005c5bcaa9f48b18437950a11d69e4373fc3f53

Nếu tôi sử dụng khóa (chỉ sử dụng mô đun và số mũ công khai 3), tôi thấy rằng ImeiSign chữ ký là chữ ký PKCS#1 v1.5 sử dụng SHA-1 làm hàm băm. May mắn thay cho Samsung, bản thân IMEI có thể sẽ không dễ bị ảnh hưởng bởi các điểm yếu của SHA-1 w.r.t. khả năng chống va chạm.

Tôi dường như không thể xác minh IMEI với nó, có thể là do một số mã hóa lạ (giống như BCD?) Của số IMEI. Dù sao, hàm băm SHA-1 trong chữ ký là 824ae6730ee34d365375e791aa2331d5e57c320d trong trường hợp bạn muốn thử một vài thứ.

Maarten Bodewes avatar
lá cờ in
Tôi không thể đảo ngược chữ ký `PubKeySign`, tôi cho rằng chữ ký này đã được ký bằng khóa riêng tư cụ thể của Samsung, vì vậy nó sẽ yêu cầu một khóa chung khác để xác minh. Rốt cuộc, đó là toàn bộ ý tưởng đằng sau một PKI phân cấp.
Điểm:-1
lá cờ si

Đây không phải là bất kỳ định dạng khóa công khai thường được sử dụng nào, nhưng phần PubKey là 1040 byte thập lục phân. Khóa công khai RSA được hình thành từ "số mũ công khai" và "mô-đun" và độ dài tính bằng bit của "mô-đun" là thứ xác định kích thước khóa RSA (512, 2048, 3072, 4096, v.v.). "Số mũ công khai" thường khá nhỏ, 65537 (0x010001) là phổ biến.

Vì vậy, với 1040 ký tự hex (nibbles) là $1040\ nibbles\times 4\frac{bits}{nibble}=4160\ bits$ Tôi đoán rằng đây thực tế là khóa công khai 4096 bit.

Bạn không thể tạo chứng chỉ của riêng mình nếu không có khóa riêng mà thiết bị sẽ chấp nhận. Vì bạn không có quyền truy cập vào khóa cá nhân đó nên bạn không thể tạo chứng chỉ hợp lệ.

Meir Maor avatar
lá cờ in
Tôi nghi ngờ, pubkey có thể có nhiều hơn n ẩn ở đó. Chữ ký ngắn hơn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.