Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

PFX сертификат
http://mcu-bg.com/mcu_site/viewtopic.php?f=16&t=16837
Страница 1 от 1

Автор:  TheWizard [ Чет Окт 31, 2019 9:54 am ]
Заглавие:  PFX сертификат

Някой М$ сертификат гуру може ли да удари едно рамо
трябва ми да се конвертира един PFX на PEM, а нещо насъпвам мотики
в тоя PFX трябва да има сертификат и частен ключ ... но openssl ми реве за некакви пароли, а PFX-а не би трябвало да има парола, щото не я виждам във сорса ( C# )
Опитвам се да обърна C# сорса на Python ... обаче всички PFX библиотеки не са "съвършенни" ... за тва ми трябва PEM

Код:
    public Task<byte[]> Sign(byte[] data)
    {
      byte[] hash;
      using (SHA256 shA256 = SHA256.Create()) hash = shA256.ComputeHash(data);
      using ( ECDsa ecDsaPrivateKey = ECDsaCertificateExtensions.GetECDsaPrivateKey( this.TestKey ) ) <----- няма парола
        return Task.FromResult<byte[]>(ecDsaPrivateKey.SignHash( hash ));
    }

....

this.TestKey .... PFX-a се зарежда от ресурса на EXE-to и пак не виждам пароли
using (BinaryReader binaryReader = new BinaryReader(manifestResourceStream))
          return new X509Certificate2(binaryReader.ReadBytes((int) manifestResourceStream.Length));


файла е тук
https://github.com/Wiz-IO/azure-sphere- ... ster/certs

другия CER е само за валидация и не се ползва в случая

Автор:  miro_atc [ Чет Окт 31, 2019 10:20 am ]
Заглавие:  Re: PFX сертификат

аз съм М$ анти-гуро, тия убавци не мога да ги понасям, особено на тема секюрити...

Въпросният файл е с ASN1 формат с DER енкодинг и съдържа някакви данни и sha (предполагам на данните, не съм чеквал).

Код:
$ openssl asn1parse -inform der -in meta_sign_pfx.pfx
    0:d=0  hl=4 l=1074 cons: SEQUENCE         
    4:d=1  hl=2 l=   1 prim: INTEGER           :03
    7:d=1  hl=4 l=1016 cons: SEQUENCE         
   11:d=2  hl=2 l=   9 prim: OBJECT            :pkcs7-data
   22:d=2  hl=4 l=1001 cons: cont [ 0 ]       
   26:d=3  hl=4 l= 997 prim: OCTET STRING      [HEX DUMP]:308203E1308202D706092A864886F70D010706A08202C8308202C4020100308202BD06092A864886F70D0
10701301C060A2A864886F70D010C0106300E0408C19A5CCFB4AE464D0202080080820290B8AF1AA87A9504A139
962FA75C455FA2BAD9402F0FBEA5B6B9D71974FEEE4D1B27475451879A957D2FEED25BEC9E3B65105EB6DE24C84
36A7AF274AAA45D7C0A42F549B9E3290E1B52B5B45CC7FFA0767A16F1DA29253883F433C14AD71B13F3572A5B42
F2EE083FE443DE0D22E1006538605B86A0DA23C2BD64F72B7FA95B1C64077498F61384CAF53A01A95C31131EA67
56EBDE7E1C3803AC4F9B1BCF67AA0BD48AF14FFDF5653455D625E2241C7A986486536E454A3FA9EF53AC6D2BDFD
AD3DFE4F65A6E8BBD3B6AE253D7F31FA24D2354A64ECD43EB7E39E2299662D676C70825D9C86876D77C4745218D
8618650B83E23AF656081913D06B645A4CC88B640BE78DAFB92B995EBA234A86BD852828B4D6B9D1A5C07599E9
3AF5B25FA7BA150118041B9A29734A7F88EB1F5D84FD762B0ED084B5367938F735F6DF81FF465A9D052555E22E6
2BF2D5C24F0E4BA90C7173F59E9B6CF563005C7CBB90D6D64869D2053FC8BAA4EEF5018755B23FC23C06EAAE8C5
2E74AA2CCDDBA330E755456AB3E5521DD91FBD8DE12439B2625FED2ECE6DF7DCFD74AFC175EF58485271E32FF8
FBB8B6F917C91BD9FC1AC7750F7EA1CAA60C0E53248B9D03D893CE7D044E75612AAE2F8EEB55E6152A6FFED0F4D
B0B58748CE281E69486102382256FA2F907282DBBCE3169737B30CC20085103448865ECF2E7F1569EA7846096C57
3252E27C39385ADC97DF7B5099EFFAD6D5110E9C5C00A12DD30F8F5A6394183057BD00629BE3378EF89A3DCF841
9DD0A540264705C775F244F2B14A1DA5CF58335D99F286538AED7E8E6CEF9BA25C842F4D2E8ECDFA53700333A52
2F16E5D27AC65C606D68C0F99DD7B0912D73C45BE0781C41A752CA66D04166C7DBE1B293DDC01B786C256B5B99
5FBA6BDDCAB87C0B56BB553082010206092A864886F70D010701A081F40481F13081EE3081EB060B2A864886F70D
010C0A0102A081B43081B1301C060A2A864886F70D010C0103300E0408DEA791BFE911E7EA02020800048190E167
920897462616F5D79F61303B475BEB918C6BC7C56A2B30EEEB662F4C8C17E46D9032E2B1A127A85B7F5B044E5FA23
FD2043A8F5CADAA0A018E6CA2C1DECFF217E38578C831D1C030DFB3151C03CFB0822CDF5224DBA39E54ADEEFB43
D25E482D48AD3274883C196488E4F9404FFF3C4101E2FE18D9D386701B858FD51FF45AC7803367DD0A4B30E26944
1B3ED2F23125302306092A864886F70D01091531160414A8D5CC6958F48710140D7A26160FC1CFC31F5DF0
1027:d=1  hl=2 l=  49 cons: SEQUENCE         
1029:d=2  hl=2 l=  33 cons: SEQUENCE         
1031:d=3  hl=2 l=   9 cons: SEQUENCE         
1033:d=4  hl=2 l=   5 prim: OBJECT            :sha1
1040:d=4  hl=2 l=   0 prim: NULL             
1042:d=3  hl=2 l=  20 prim: OCTET STRING      [HEX DUMP]:6A006FA80ED6EBF370EE699B9B44B52D9C398C52
1064:d=2  hl=2 l=   8 prim: OCTET STRING      [HEX DUMP]:9C19ECBEF20DE033
1074:d=2  hl=2 l=   2 prim: INTEGER           :0800


Доколкото данните са описани като pkcs7-data би следвало да са криптирани, М$ имат такъв обичай. Това е често срещана тяхна практика в други техни файлови формати, само че обикновено слагат и описание на криптирането, а тук не виждам такова... Пак съдейки по техните обичаи, криптирането най-вероятно е с публичния ключ от сертификата дето си дал. Проблемът обаче е че има стотици варианти на криптиране и ако трябва да го нацелваш ще е голяма играчка ;-)

едит: понацепих лога, че излиза гадно...

Автор:  ps66 [ Чет Окт 31, 2019 10:28 am ]
Заглавие:  Re: PFX сертификат

pfx винаги върви с парола (когато се конвертира в pfx се задава задължително)

Автор:  miro_atc [ Чет Окт 31, 2019 10:33 am ]
Заглавие:  Re: PFX сертификат

е има едно поленце след ша-то... може и да е парола, ама какво е криптирането?

Автор:  ps66 [ Чет Окт 31, 2019 10:42 am ]
Заглавие:  Re: PFX сертификат

преди години - така съм конвертирал cer в pfx (за codesign сертификати - сега вече са на донгъли):
CER->SPC->PFX + PASSWORD

cert2spc NAME.cer NAME.spc
pvk2pfx -pfx NAME.pfx -spc NAME.spc -po PASSWORD


(cert2spc.exe & pvk2pfx.exe са на MS - трябва да ги има по sdk-ta - мойте са от 2006)

Автор:  TheWizard [ Чет Окт 31, 2019 10:43 am ]
Заглавие:  Re: PFX сертификат

ECDsa256

Автор:  miro_atc [ Чет Окт 31, 2019 11:10 am ]
Заглавие:  Re: PFX сертификат

абе реве си за парола...

Код:
$ openssl pkcs12 -in meta_sign_pfx.pfx -info
Enter Import Password:
MAC: sha1, Iteration 2048
MAC length: 20, salt length: 8
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Certificate bag
Bag Attributes
    localKeyID: A8 D5 CC 69 58 F4 87 10 14 0D 7A 26 16 0F C1 CF C3 1F 5D F0
subject=C = US, ST = Washington, L = Redmond, O = Microsoft Corporation, CN = Azure Sphere SDK Test

issuer=C = US, ST = Washington, L = Redmond, O = Microsoft Corporation, CN = Azure Sphere SDK Test

-----BEGIN CERTIFICATE-----
MIICMDCCAdWgAwIBAgIJAKH4XtbTyQ8QMAoGCCqGSM49BAMCMHQxCzAJBgNVBAYT
AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdSZWRtb25kMR4wHAYD
VQQKDBVNaWNyb3NvZnQgQ29ycG9yYXRpb24xHjAcBgNVBAMMFUF6dXJlIFNwaGVy
ZSBTREsgVGVzdDAeFw0xODA1MjIwMTE2MjVaFw0zODA1MTcwMTE2MjVaMHQxCzAJ
BgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdSZWRtb25k
MR4wHAYDVQQKDBVNaWNyb3NvZnQgQ29ycG9yYXRpb24xHjAcBgNVBAMMFUF6dXJl
IFNwaGVyZSBTREsgVGVzdDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABO3yM8AN
MRQdjz9WM0NAzNjBaftn4uxWS/il71hrHD97wYjKIIcB5tfHdWoTJjj+mMmgIAdA
PeXEIuan6CakvSSjUDBOMB0GA1UdDgQWBBRjsI/w+PfZeFjjM5tQcFL6HcyeizAf
BgNVHSMEGDAWgBRjsI/w+PfZeFjjM5tQcFL6HcyeizAMBgNVHRMEBTADAQH/MAoG
CCqGSM49BAMCA0kAMEYCIQD2dyGZaKdjz5/90K7OH+d8A5zc7tLvviXa3KEucrGv
ugIhAIoNe5ddI4GhgN4FWOMlnq+VgWzeP25sowIc4g4dFFtC
-----END CERTIFICATE-----
PKCS7 Data
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048
Bag Attributes
    localKeyID: A8 D5 CC 69 58 F4 87 10 14 0D 7A 26 16 0F C1 CF C3 1F 5D F0
Key Attributes: <No Attributes>
Enter PEM pass phrase:
Error outputting keys and certificates

Автор:  TheWizard [ Чет Окт 31, 2019 11:29 am ]
Заглавие:  Re: PFX сертификат

ам как взима private_key в C# сорса

using ( ECDsa ecDsaPrivateKey = ECDsaCertificateExtensions.GetECDsaPrivateKey( TestKey ) ) <----- няма парола
return ecDsaPrivateKey.SignHash( hash );

Автор:  miro_atc [ Чет Окт 31, 2019 11:32 am ]
Заглавие:  Re: PFX сертификат

всъщност нещо такова трябва да е, но не е много сигурно щото го вадя без парола... (*.txt заради форума)

Прикачени файлове:
cer-nocerts.pem.txt [1.44 KiB]
311 пъти

Автор:  TheWizard [ Чет Окт 31, 2019 11:36 am ]
Заглавие:  Re: PFX сертификат

Миро, можеш ли да изкараш публик кея

Автор:  miro_atc [ Чет Окт 31, 2019 12:03 pm ]
Заглавие:  Re: PFX сертификат

малко трудно, щото идея си нямам какви са тия данни... а пък openssl-a ми иска парола, аз не му давам и той ме псува ;-)

Автор:  TheWizard [ Чет Окт 31, 2019 12:09 pm ]
Заглавие:  Re: PFX сертификат

направих неква "щуротия"
щото ми забива openssl-а на PKCS#12/PFX го бастисах онлайн
https://www.sslshopper.com/ssl-converter.html
което даде същото като твоя "TXT"
от тук
https://wiki.openssl.org/index.php/Comm ... Operations
джаснах тва
openssl ec -in meta_sign_pfx.pem -out ecprivkey.pem
openssl ec -in meta_sign_pfx.pem -pubout -out ecpubkey.pem

и с последните два пема пробвах:

Код:
dir = os.path.dirname( sys.argv[0] )
msg = 'message'

f = open(join(dir, 'certs', 'ecprivkey.pem'), 'r' )
pk = PrivateKey.fromPem(f.read())
f = open(join(dir, 'certs', 'ecpubkey.pem'), 'r' )
pb = PublicKey.fromPem(f.read())

signature = Ecdsa.sign(msg, pk)
print(Ecdsa.verify(msg, signature, pb))


и вика verify = TRUE
а дали е така - беш ли мааму

Автор:  miro_atc [ Чет Окт 31, 2019 12:18 pm ]
Заглавие:  Re: PFX сертификат

eee щом верификацията минава значи си се справил добре ;-)

Автор:  TheWizard [ Чет Окт 31, 2019 9:17 pm ]
Заглавие:  Re: PFX сертификат

бе нящо са омазах :)
проверих public key е верен, има го във PFX както и в firmware( тук има public и thumbprint ) обаче е записан в обратен ред ?!? а thumbprint е в прав ред
за private- не съм сигурен ... ма като го зарежда не реве че не е курва .... крива

Автор:  TheWizard [ Пет Ное 01, 2019 7:37 pm ]
Заглавие:  Re: PFX сертификат

YES !!! ... змии и гущери ще плюват М$ :)

Прикачени файлове:
sig.jpg
sig.jpg [ 241.02 KiB | Прегледано 9840 пъти ]

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/