Puncte:1

Fișier .Cert Samsung - Săpă mai adânc

drapel cn

Nu știu dacă ar trebui să pun această întrebare Android Stackexchange sau aici, dar sunt sigur că sunt în locul potrivit pentru a întreba.

Întrebarea mea este despre următorul fișier de certificat Samsung:

Nume de fișier: I9301I-357537065876500.cert

[cert] 
Model=GT-I9301I
IMEI=357537065876500
SerNo=S200013955 
ImeiSign=75779BA6B9FF5269A6828F2EAB02049B874169ACE705F5B6187EFE5F91B619E4D23EC50D7AED63D3F570766B6E03C9A416FC4B760329F43F3C06FF2B5404922BE64B7FAA457B11F3840057E8ED4160537C241B89B36B48842A78D9B5EB359820A8A44DFB1AD9021D5920AD8B856558740CDC8ECDD1981ADEA9ED81873F989221322A2CD8D8FF7DA19DEDABADF2E00D0BC7D1A8331A6C3904CCA8CF7EB97F4413496CC50966ECB12012DAB689EBEFF23ED3C5E48944675E4488A501BE5BF44DBAD20F035E3C5A0E4E7C32653061EB5E8ACA4B26480A19DC3F02EB881A0ED2BE64522228FFCA66B335FECF7DD9113AEE9067DB8AEBB751528A4E9A6B4DF07AF9F1

PubKey=4000000025A3C38C533FFC73439ED6110A953784B1489FAABCC5050059FFB62E6FED9602EEE2752285681D3F888D47E44D509865B76E6CE2D0CCC53928BD9C220792A8B6EC3D7EDA75364B7D3E2057F20CBA44E75C1057D0E85A0BE9C873AFB740ECD20B9BF1CC22CA167A4AC850ADF41CFBDC924A1A8EEBB603274584B50EEA786EB184C5284EDAAF79D8F15BD9A559A4F4A11D11478BA7259182EB2561C6C05BC587C491A60206689BFCE7A463617A7DE64FAF4493D12245BFA9523D58508FC8543E8868AB9C506DA1379BE2954AA35397B2ADA75518F158D5FB691BA8A6309266A714C9A22ACBA4693DC5B2848E45611E0E712FC577A3A50B21B6095744B28FDCD149ADD9F0935367F7FC9D79C3237791D74AD38A47846A117571D91802AE3261DD971ECD968454AD397DE1F413C430EAB7A2B3B1A3B9C94AC031B11B3233F49BD7A165E3D603C3FA274F1F10BE6A3112305F47EFDE511627CDA0010D90F35A90689041384F4FA83BADB8CA8AD523470DF9C556A07E05FC7E33FB945C46EE29BA9082E6C970BE5AFF147750029FD0B51A8CE71BF5F25E6076F02B0AB01DE8F8E742D0CA855E9D89EF6CFEEB41EE819E21256B8E1A1AF25C47E904BACBB891C7C0D173A40F0B4A727DF7F273EDCD2A0B2728BEC9A986259866676E1B1EE743D20D08F977D1AAAEAD3CDD4CECF6B1E0A C67C8CE0F158C1093CE04B7F4E6E4B77B1D05BB1832923B

PubKeySign=719D9FE450D96A5DCFCD05FAC2DD88CD4222D30D396CB1760EF9C3024E7EC686F45C44AA6D1ED4648733389C5945130F567949A7E55419B1765B4FC0B829F4487528CC85AE552E6F3A8759B25C95AE658F1E4C578178230A738B46409A65213DB4246B0A1A7888A4EB72D545F85613309E1C6696AC6C8123566450193594625292AF269BBE1A89A8B77B49C0E65D59910BE886B0A5B1A3A8F5A2595158FC10B408800E840FCE78EA9835B5085D3CCE3DC36FA92DAB7C1373DC563599F32E61C6ED85DA4C0708EF0743FAC5A08904F097BC782FE92102BC511D014806CCEAD4D1EF860A415E3DFE578431513E49E7CC99B7F17852FDFF2EBB75163968E09B67AE

Fișierul este descărcat de la Aici

O discuție pe care am găsit-o Aici spune, acest fișier de certificare este

Imei Cert este RSA 512

Un alt utilizator spune:

Absolut greșit! Imei cert este rsa 2048.

Întrebarea mea este de unde știu dacă este 512 sau 2048 precum și care sunt pașii pentru a genera propriul fișier de certificare în funcție de acești parametri dați: Model IMEI SerNo

Puncte:5
drapel in

Am găsit o descriere a formatului cheii publice Aici postat de Victor din Blagoevgrad la GSMHosting.com. După cum sa menționat în comentarii, ambele dimensiuni ale semnăturii sunt, de asemenea, de 2048 de biți, deci este destul de concludent.

Iată conținutul postării informațiilor din link:

#define RSANUMBYTES 256 /* Lungimea cheii de 2048 biți */
#define RSANUMWORDS (RSANUMBYTES / sizeof(uint32_t))


typedef struct RSAPublicKey {
    int len; /* Lungimea lui n[] în număr de uint32_t */
    uint32_t n0inv; /* -1 / n[0] mod 2^32 */
    uint32_t n[RSANUMWORDS]; /* modulul ca un tablou endian mic */
    uint32_t rr[RSANUMWORDS]; /* R^2 ca un mic tablou endian */
    int exponent; /* 3 sau 65537 */
} RSAPublicKey;

Am aflat că există o modexp3 în restul codului sursă care este făcută mai eficientă folosind n0inv și rr valori, deci exponentul public are valoarea 3 (pare că lipsește din structură, așa că bănuiesc că acea parte a fost depreciată).

Posibil confuzia vine de la 40 00 00 00 valoare hexazecimală în față; aceasta codifică 64 când este văzută ca valoare mică endian. Cu toate acestea, nu înseamnă 64 de biți: 64 * 8 = 512, ci 64 de cuvinte, unde fiecare cuvânt este de 32 de biți, adică de 4 ori mai mult, dând 2048 de biți.

Aceasta înseamnă că modulul are următoarea valoare - în big endian:

93f0d9ad49d1dc8fb2445709b6210ba5a377c52f710e1e61458e84b2c53d69a4cb2aa2c914a7669230a6a81b69fbd5557957318169230a6a81b69fbd55579573185459371
509cab68883e54c88f50583d52a9bf4522d19344af4fe67d7a6163a4e7fc9b680602a691c487c55bc0c66125eb829125a1489af47168883a4e7fc9b680602a691c487c55bc0c66125eb829125a140602a
da4e28c584b16e78ea0eb584452703b6eb8e1a4a92dcfb1cf4ad50c84a7a16ca22ccf19b0bd2ec40b7af73c8e90b5ae8d057105ce7574305ce7574205ce75744
da7e3decb6a89207229cbd2839c5ccd0e26c6eb76598504de4478d883f1d68852275e2ee0296ed6f2eb6ff590005c5bcaa9f48b50353793934379334313790005

Dacă folosesc cheia (folosind doar modulul și exponentul public 3) constat că ImeiSign semnătura este o semnătură PKCS#1 v1.5 folosind SHA-1 ca hash. Din fericire pentru Samsung, IMEI-ul în sine nu va fi probabil susceptibil la slăbiciunile SHA-1 w.r.t. rezistenta la coliziune.

Totuși, nu pot verifica IMEI-ul cu el, probabil din cauza unei codificări ciudate (ca BCD?) a numărului IMEI. Oricum, hash-ul SHA-1 din semnătură este 824ae6730ee34d365375e791aa2331d5e57c320d în cazul în care vrei să încerci câteva lucruri.

Maarten Bodewes avatar
drapel in
Nu pot inversa semnătura `PubKeySign`, mă aștept să fi fost semnată cu o cheie privată specifică Samsung, deci ar fi nevoie de o cheie publică diferită pentru verificare. Până la urmă, aceasta este ideea din spatele unui PKI ierarhic.
Puncte:-1
drapel si

Acesta nu este niciunul dintre formatele de chei publice utilizate în mod obișnuit, dar secțiunea PubKey are 1040 de octeți hexizecimal. Cheile publice RSA sunt formate dintr-un „exponent public” și un „modul”, iar lungimea în biți a „modulului” este ceea ce definește dimensiunea cheii RSA (512, 2048, 3072, 4096, etc). „Exponentul public” este de obicei destul de mic, 65537 (0x010001) este comun.

Deci, cu 1040 de caractere hexadecimale (nibbles) fiind $1040\ nibbles\times 4\frac{bits}{nibble}=4160\bits$ Bănuiesc că aceasta este de fapt o cheie publică de 4096 de biți.

Nu vă puteți crea propriul certificat fără o cheie privată pe care dispozitivul o va accepta. Deoarece nu aveți acces la acea cheie privată, nu puteți crea un certificat valid.

Meir Maor avatar
drapel in
Sunt îndoielnic, pubkey-ul ar putea avea mai mult decât n ascuns acolo. Semnăturile sunt mai scurte.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.