2013/10/22

[OpenSSL] Linux下S/MIME範例教學

在網路的世界中,資料來來往往的傳遞,就會存在著資料是誰送來的,或者,資料安全性的問題。因此就有所謂的SSL(Secure Sockets Layer)的機制,在OSI七層架構的屬於表現層(Presentation Layer)之下的應用。

在OpenSSL的官網上可以載到最新的Library。
http://www.openssl.org/




把openssl 1.0.1e下載之後解壓縮

可以得到解壓檔案內容

以demos/smime資料夾下的的程式碼為例子


S/MIME是應用在email等電子郵件上的SSL協定,主要可以分為兩種,數位簽章以及加密。
smsign.c是利用signer.pem的憑證,把sign.txt檔案做數位簽證的動作。

利用
gcc smsign.c -lssl -lcrypto -o smsign
編譯
可以得到編譯檔 smsign,並執行
執行完可以看到一個smout.txt的簽章結果 

然後利用smver.c來進行驗證,smver會利用公鑰cacert.pem來驗證。

除了數位簽章之外,同時也可以做加密、解密的功能,讓email在網路上傳送可以達到,確認是誰送給誰,且保有安全性的傳輸目的。
smenc.c會把encr.txt加密成smencr.txt
 利用smdec可以把加密的結果smencr.txt解密,得到encrout.txt的解密結果。

指令的部分可以參考官網上smime的部分
http://www.openssl.org/docs/apps/smime.html

可以用
openssl smime -sign/-verify/-encrypt/-decrypt -in in.file -out out.file -signer key.pem
來做數位簽章以及加解密的功能。

沒有留言:

張貼留言