TOA için anahtar ve sertifika oluşturma

Google Workspace, Google Workspace veya Google Workspace for Education müşterilerine Tek Oturum Açma (TOA) hizmeti sunar. Google Workspace Tek Oturum Açma hizmeti, RSA veya DSA algoritmasıyla oluşturulan ortak anahtarları ve sertifikaları kabul eder. Hizmeti kullanmak için ortak ve özel anahtar grubunu ve ortak anahtarı içeren bir X.509 sertifikası oluşturmanız gerekir. Ortak anahtar veya sertifika aldıktan sonra bunu Google'a kaydetmeniz gerekir. Bunu yapmak için anahtarı veya sertifikayı Google Yönetici Konsolu üzerinden yüklemeniz yeterlidir.

Anahtar ve sertifika oluşturma yönteminiz genellikle geliştirme platformunuza ve programlama dili tercihinize bağlıdır. Google Workspace TOA hizmetinin ihtiyaç duyduğu anahtarları ve sertifikayı oluşturmanın birkaç farklı yolu vardır.

OpenSSL'i kullanma

Ortak ve özel anahtar çiftleri oluşturmak için birçok yöntem olsa da açık kaynaklı OpenSSL aracı en popüler yöntemlerden biridir. Tüm büyük platformlara taşınmıştır ve anahtar oluşturma için basit bir komut satırı arayüzü sağlar.

RSA Özel Anahtarını oluşturma

OpenSSL üzerinden RSA özel anahtarı oluşturma işlemi tek adımdan oluşur:

openssl genrsa -out rsaprivkey.pem 2048

Bu komut, PEM kodlamalı bir özel anahtar oluşturur ve bunu rsaprivkey.pem dosyasına kaydeder. Bu örnekte, neredeyse her amaç için kullanılabilecek 2048 bitlik bir anahtar oluşturulur. Oluşturulan özel anahtar gizli tutulmalıdır ve verileri imzalamak ve şifrelerini çözmek için kullanılır.

Özellikle Java tabanlı bazı uygulamalar, DER veya PKCS8 gerektirebilir. Bunlar, aşağıdaki ek adımlar kullanılarak oluşturulabilir:

  1. openssl rsa -in rsaprivkey.pem -pubout -outform DER -out rsapubkey.der
  2. openssl pkcs8 -topk8 -inform PEM -outform DER -in rsaprivkey.pem -out rsaprivkey.der -nocrypt

1. adım, ortak anahtarı DER biçiminde oluşturur.

2. adımda özel anahtar pkcs8 ve DER biçiminde oluşturulur. Oluşturulduktan sonra bu anahtarları (rsapubkey.der ve rsaprivkey.der) kullanabilirsiniz.

DSA Özel Anahtarı oluşturma

DSA anahtarı oluşturma işlemi iki adımdan oluşur:

  1. openssl dsaparam -out dsaparam.pem 2048
  2. openssl gendsa -out dsaprivkey.pem dsaparam.pem

İlk adımda bir DSA parametre dosyası (dsaparam.pem) oluşturulur. Bu dosya, 2. adımda OpenSSL'ye 2.048 bitlik bir anahtar oluşturma talimatı verir. dsaparam.pem dosyası bir anahtar değildir ve ortak ve özel anahtarlar oluşturulduktan sonra silinebilir. İkinci adımda, dosyada özel anahtar oluşturulur. dsaprivkey.pemBu anahtar gizli tutulmalıdır.

Anahtarı DER (ikili) biçiminde dışa aktarmak için aşağıdaki adımları kullanabilirsiniz:

  1. openssl dsa -in dsaprivkey.pem -outform DER -pubout -out dsapubkey.der
  2. openssl pkcs8 -topk8 -inform PEM -outform DER -in dsaprivkey.pem -out dsaprivkey.der -nocrypt

1. adım, ortak anahtarı DER biçiminde çıkarır.

2. adımda özel anahtar, pkcs8 ve DER biçimine dönüştürülür. Bu işlemi tamamladıktan sonra bu ortak (dsapubkey.der) ve özel (dsaprivkey.der) anahtar çiftini kullanabilirsiniz.

Sertifika oluşturma

Anahtar çiftini oluşturduktan sonra X.509 sertifikasını basitçe oluşturabilirsiniz. Sertifika, ilgili ortak anahtarın yanı sıra sertifikayı oluşturan kuruluşla ilgili bazı meta verileri içerir. RSA veya DSA özel anahtarından kendinden imzalı sertifika oluşturmak için bu adımı uygulayın:

openssl req -new -x509 -key dsaprivkey.pem -out dsacert.pem

Birkaç soruyu yanıtladıktan sonra sertifika oluşturulur ve dsacert.pem olarak kaydedilir. Bu, TOA'yı yapılandırırken Denetim Masası üzerinden Google Workspace'e yüklediğiniz dosyadır.

Sertifika parmak izi oluşturma

Bazı uygulamalar, X.509 sertifikasının kendisi yerine X.509 sertifika parmak izi kullanılmasını gerektirir. Parmak izi, x509 ikili biçimindeki sertifikanın özetidir. Parmak izi türü, parmak izini oluşturmak için kullanılan algoritmaya (ör. SHA-1 veya SHA-256) bağlıdır.

X.509 sertifikasından SHA-256 parmak izi oluşturmak için aşağıdaki komutu kullanın (gerçek sertifika .pem dosya adınızı girin):

openssl x509 -noout -fingerprint -sha256 -inform pem -in "GoogleIDPCertificate-domain.com.pem"

.NET için Microsoft Visual Studio'yu kullanma

Microsoft Visual Studio 2005, Google Workspace ile kullanılacak bir sertifika oluşturmak için kullanılabilecek yardımcı programlar (Common7ToolsBin dizininde) sağlar. .NET'te ortak ve özel anahtar çifti ile sertifika oluşturmak için aşağıdaki adımları uygulayın:

  1. makecert -r -pe -n "CN=Test Certificate" -sky exchange -sv testcert.pvk testcert.cer
  2. pvk2pfx -pvk testcert.pvk -spc testcert.cer -pfx testcert.pfx

Varsayılan olarak, yukarıdaki komutlarda RSA algoritması kullanılır. 1. adımda, testcert.cer adlı kendinden imzalı bir X.509 sertifikası ve ilgili özel anahtarı oluşturmak için Sertifika Oluşturma Aracı (makecert.exe) kullanılır.

2. adımda, CER ve PVK dosyasından Kişisel Bilgi Değişimi (PFX) dosyası oluşturmak için pvk2pfx aracı (pvk2pfx.exe) kullanılır. PFX hem genel hem de özel anahtarınızı içerir.

1. adımda oluşturulan testcert.cer dosyası, Denetim Masası kullanılarak Google Workspace'e yüklenebilir ve 2. adımdaki testcert.pfx, SAML yanıtını imzalamak için bir X509Certificate2 (.NET 2.0+) örneği oluşturmak üzere kullanılabilir.

Java'da Keytool'u kullanma

Java geliştiricileri, ortak/özel anahtar çiftini ve X.509 sertifikasını oluşturmak için standart JDK'da bulunan keytool yardımcı programını kullanabilir. keytool, kullanıcıların dijital imza gerektiren kimlik doğrulama şemalarında kullanılmak üzere kendi ortak/özel anahtar çiftlerini ve ilişkili sertifikalarını yönetmelerine olanak tanıyan bir anahtar ve sertifika yönetimi yardımcı programıdır. keytool, anahtarları ve sertifikaları bir "anahtar deposunda" saklar. Bu depo, varsayılan uygulama için kullanıcının ana dizinindeki bir dosyadan (.keystore) ibarettir. Özel anahtarlar şifrelerle korunur.

DSA anahtar çiftleri oluşturma

  1. keytool -genkey -alias dsassokey -keyalg "DSA" -keysize 2048 -validity 180 -sigalg "SHA256withDSA"
  2. keytool -export -alias dsassokey -file dsasso.cer

1. adımda, DSA algoritması kullanılarak 2048 boyutunda ve 180 gün geçerliliği olan bir ortak/özel anahtar çifti oluşturulur.

2. adımda, ortak anahtardan bir X.509 sertifikası (dsasso.cer) oluşturulur. Ardından, Denetim Masası'nı kullanarak dsasso.cer dosyasını Google Workspace'e yüklersiniz.

DSA anahtar çiftleri oluşturma

  1. keytool -genkey -alias rsassokey -keyalg "RSA" -keysize 2048 -validity 180
  2. keytool -export -alias rsassokey -file rsasso.cer

1. adımda, RSA algoritması kullanılarak 2048 boyutunda ve 180 gün geçerliliğe sahip bir ortak/özel anahtar çifti oluşturulur.

2. adımda, ortak anahtardan bir X.509 sertifikası (rsasso.cer) oluşturulur. Ardından, Denetim Masası'nı kullanarak rsasso.cer dosyasını Google Workspace'e yükleyin.

Java Cryptography Architecture (Java Şifreleme Mimarisi) Kullanımı

Java Cryptography Architecture (JCA), güvenlik özelliklerini oluşturmak ve değiştirmek için temel sınıflar ve arayüzler sağlar. JCA, Java 2 SDK Security API'nin kriptografiyle ilgili bölümlerini kapsar. Bu API'yi kullanarak istediğiniz algoritmada ortak ve özel anahtar çiftlerini kolayca oluşturabilirsiniz. Aşağıda, Google Workspace TOA hizmetiyle kullanılacak DSA veya RSA anahtarları oluşturan örnek bir kod verilmiştir.

Genel ve özel anahtar çifti oluşturma

import java.io.*;
import java.security.*;

public class KeyGenDSA {

  public static void main(String[] args) {
        try {
          KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA");
          SecureRandom random = SecureRandom.getInstanceStrong();
          keyGen.initialize(2048, random);

          KeyPair pair = keyGen.generateKeyPair();
          PrivateKey priv = pair.getPrivate();
          PublicKey pub = pair.getPublic();

          byte[] encPriv = priv.getEncoded();
          FileOutputStream privfos = new FileOutputStream("DSAPrivateKey.key");
          privfos.write(encPriv);
          privfos.close();

          byte[] encPub = pub.getEncoded();
          FileOutputStream pubfos = new FileOutputStream("DSAPublicKey.key");
          pubfos.write(encPub);
          pubfos.close();

   } catch (Exception e) {
         e.printStackTrace();
   }
  }
}

Yukarıdaki kod, bir çift DSA anahtarı oluşturmak için KeyPairGenerator kullanır. Oluşturulan anahtarlar ikili biçimde olur ve ayrı dosyalar halinde çıkarılır. Anahtarları aldıktan sonra ortak anahtarı Google Workspace'e kaydedebilir ve SAMLResponse imzalama işlemini özel anahtarla yapabilirsiniz. DSA yerine bir RSA anahtar çifti oluşturmak için koddaki "DSA" değerini "RSA" ile değiştirmeniz yeterlidir.

Sertifikanızı veya ortak anahtarınızı Google Workspace'e kaydetme

Anahtar ve sertifika oluşturma gibi zorlu kısmı tamamladıktan sonraki adım oldukça basittir. Sertifikanızı veya ortak anahtarınızı Google Workspace'e kaydetmek için Yönetici Konsolu'na gidip yönetici olarak giriş yapmanız gerekir. Güvenlik'i, ardından Tek oturum açma (TOA) ayarlarını yapın'ı seçin ve Üçüncü taraf kimlik sağlayıcı ile TOA ayarlarını yapın bölümündeki tüm alanları doldurun.