PGP şifreleme
PGP, şifreleme ve imzalama algoritmalarından oluşan standart bir kümedir. kriptografik gizlilik ve kimlik doğrulama sağlar.
Yükleri şifrelemek için PGP kullanırken iş ortakları şunları desteklemelidir:
- Birden fazla PGP anahtarıyla yükleri şifreleme ve şifrelerini çözme.
- Yükleri birden fazla PGP anahtarıyla imzalama.
- Bir yükün birden çok imzayla doğrulanması. Bu imzalardan biri Google tarafından sağlanan anahtarla imzalanması gerekir.
- Web güvenli base64 kodlu yükün şifresini çözme.
Google'a sağlanan PGP genel anahtarlarında, şifreleme için kullanılan bir alt anahtar olmalıdır. İlgili içeriği oluşturmak için kullanılan alt anahtar, ana anahtardan bağımsız rotasyona olanak tanır. Ana anahtar kimlik doğrulama amacıyla kullanılır. Özel anahtarlar 2048 (veya üzeri) olmalıdır bir yıl içinde süresi dolan ve maksimum iki yıl ömrü olan bit RSA anahtarlarıdır.
Geliştirmeye başlamadan önce PGP anahtarlarını Google ile değiştirmeniz gerekir. Bu adımda bir PGP ortak-özel anahtar çifti oluşturursunuz. anahtarını Google'a bağlama ve Google'dan bir ortak anahtar alma. Geliştirme sürecinde, yalnızca geliştirme ve test için kullanılan korumalı alan anahtarlarını değiştirmeniz gerekir üretim dışında da kullanılabilir. Üretimi test edip piyasaya sürmeden önce şunları yapmanız gerekir: başka bir üretim anahtarı değişimi gerçekleştirin.
Yeni PGP anahtarı oluşturma
Sistem yolunuzda bir GPG ikili programı olduğunu varsayarsak yeni bir anahtar çifti oluşturmak için aşağıdaki POSIX komutunu kullanabilirsiniz.
$ gpg --full-generate-key
İstendiğinde en az 2048 bit entropi ve bir süresi dolar. Bu komut hem ana anahtar oluşturmalıdır ("S'igning and "C"ertificate oluşturma için SC olarak etiketlenir) ve bir alt anahtar ('E'şifreleme için E' olarak etiketlenir).
PGP Kitaplığı Yapılandırması
Yük Gönderme
- İmzalarken özet algoritması olarak
SHA384
kullanmalısınız; kullanmayınSHA1
veyaMD5
- Şifreleme sırasında simetrik şifreleme olarak
AES256
kullanılmalıdır. algoritmaCAST5
veyaIDEA
kullanmayın - İletileri şifrelerken veya imzalarken,
ilgili amaç; İmzalama için
CAN_SIGN
anahtarını kullanın ve Şifreleme içinENCRYPT_COMMS
/ENCRYPT_STORAGE
anahtarı
Yük Alma
- Yükü doğrularken kitaplığınızın modern karmayı desteklediğinden emin olun
SHA384
gibi algoritmalar kullanabilir. Google, bu tarihi tüm yeni anahtarlarda kullanmaya başlayacaktır. 14 Mayıs 2023. - Bir yükün şifresini çözerken kitaplığınızın modern simetriyi desteklediğinden emin olun
AES256
gibi şifreleme algoritmalarından yararlanılabilir. Google, bu hizmeti tüm yeni anahtar mevcut.
GPG Yük Şifreleme Örneği
Aşağıdaki komut, GPG kullanırken güvenli seçeneklerin nasıl belirlendiğine dair bir örnektir. Bu işlemin, aşağıda açıklandığı gibi güvenilir bir ortamda yapılması beklenir: Kişilerin özel anahtarlara veya hassas giriş dosyalarına erişimi yoktur.
gpg --output signed-and-encrypted.pgp \
--sign --digest-algo SHA384 \
--encrypt --cipher-algo AES256 \
--armor \
--recipient {key_id} \
input.txt
GPG her işlem için paketten doğru anahtarı otomatik olarak seçer performansında önemli bir rol oynar.
JWS imzalama ile JWE şifrelemesi
JSON Web Şifreleme (JWE), uygulamadaki içeriği şifrelemek için rfc7516 tarafından tanımlanan bir standarttır seviyesidir. JSON Web İmzası (JWS), rfc7515 güvenebileceğiniz bir kaynaktır.
İstekler ve yanıtlar, asimetrik (herkese açık) kullanılarak şifrelenen JWE jetonları olacaktır anahtarı) şifreleme için "Kompakt Serileştirme" seçeneğini belirleyin. JWE jetonu, imzalı yükü JWS jetonu olarak içermelidir. JWS ayrıca asimetrik anahtarlar kullanır; imzalamak için özel anahtar, doğrulama için de ortak anahtar.
Yük gönderirken önce yükü imzalayın, ardından şifreleyin. Zaman önce şifrenin şifresini çözün, sonra da imzayı doğrulayın.
İş Ortakları JWE'yi kullanırken aşağıdaki seçenekleri desteklemelidir:
- Kompakt Serileştirme.
- Birden fazla JWE anahtarından birindeki yükün şifresini çözme.
- Anahtar yönetimi için RSA-OAEP, RSA-OAEP-256 veya ECDH-ES algoritması.
alg
üstbilgisinde doldurulur (rfc7518 bölüm 4.1).
- A256GCM,
A128GCM,
A128CBC-HS256 veya
A256CBC-HS512
bir algoritmadır.
enc
başlığı içinde doldurulur.
kid
üstbilgisini kullanın.- JWE şifrelemesi kullanan mesaj yükleri, içerik türünü kullanmalıdır application/jose; charset=utf-8'i seçin.
İş Ortakları, JWS'yi kullanırken aşağıdaki seçenekleri desteklemelidir:
- Kompakt Serileştirme.
- Birden fazla JWS anahtarından birindeki yük doğrulanıyor.
- HS256, HS384, HS512,
İmza oluşturma için RS256, RS384, RS512, ES256, PS256, PS384 veya PS512 algoritması.
alg
üstbilgisinde doldurulur (rfc 7518 bölüm 3.1).
kid
üstbilgisini kullanın.
JWE/JWS dizeleri UTF-8 dizeleri olarak kodlanır ve dizeleri isteğe bağlıdır.
Özel anahtarlar, en fazla bir yıl içinde süresi dolan RSA/ECDH-ES anahtarı olmalıdır iki yıllık bir süre tanınır. Tüm özel anahtar kimlikleri her zaman ve buna bağlı olarak, tüm imza değerlerinin hesaplanmasında iş ortağının sunucusuna gönderilir.
Geliştirmeye başlamadan önce JWE ve JWS anahtarlarını Google ile değiştirmeniz gerekir. Anahtarlar, şurada tanımlandığı gibi JWK biçiminde değiştirilmelidir: rfc7517'dir. Bu adımda bir ortak-özel anahtar çifti oluşturursunuz, anahtarını Google'a bağlama ve Google'dan bir ortak anahtar alma. Geliştirme sürecinde, yalnızca geliştirme ve test için kullanılan korumalı alan anahtarlarını değiştirmeniz gerekir üretim dışında da kullanılabilir. Üretimi test edip piyasaya sürmeden önce şunları yapmanız gerekir: başka bir üretim anahtarı değişimi gerçekleştirin.