luktom.net
  • blog
  • kontakt
  • english





SQL Server – szyfrowanie danych hasłem

15 lut, 2016
SQL Server
Brak komentarzy
Odsłony : 5396

Jakiś czas temu konsultowałem rozwiązanie, w którym pojawiła się potrzeba przechowywania wybranych danych zaszyfrowanych hasłem podanym przez użytkownika. O ile oczywiście można to zrealizować w kodzie po stronie aplikacji, o tyle chciałbym zaprezentować, jak w łatwy sposób można zrobić to po stronie bazy danych.

SQL Server oferuje dwie funkcje umożliwiające odpowiednio operację szyfrowania i deszyfrowania: ENCRYPTBYPASSPHASE oraz DECRYPTBYPASSPHRASE.

Podstawowe szyfrowanie wygląda następująco:

DECLARE @encrypted VARBINARY(8000);
DECLARE @clearText NVARCHAR(128) = 'Wiadomosc do zaszyfrowania';
DECLARE @passphrase NVARCHAR(128) = '$ecret';

SELECT @encrypted = ENCRYPTBYPASSPHRASE(@passphrase, @clearText);
SELECT @encrypted;

Deszyfrowanie natomiast wykonujemy tak:

SELECT CONVERT(NVARCHAR(128), DECRYPTBYPASSPHRASE(@passphrase, @encrypted))

Dane szyfrowane są przy użyciu algorytmu Triple DES z 128 bitowym kluczem tworzonym na bazie @passphrase.

Bezpieczeństwo zaszyfrowanych danych możemy jeszcze bardziej wzmocnić dodając do klucza popularną „sól” – czyli w terminologii SQL Servera – authenticator:

DECLARE @encrypted VARBINARY(8000);
DECLARE @clearText NVARCHAR(128) = 'Wiadomosc do zaszyfrowania';
DECLARE @passphrase NVARCHAR(128) = '$ecret';

DECLARE @authenticator NVARCHAR(128) = '$alt';

SELECT @encrypted = ENCRYPTBYPASSPHRASE(@passphrase, @clearText, 1, @authenticator);
SELECT @encrypted;

Deszyfrowanie z authenticatorem realizujemy analogicznie:

SELECT CONVERT(NVARCHAR(128), DECRYPTBYPASSPHRASE(@passphrase, @encrypted, 1, @authenticator))

Oczywiście aby dodanie authenticatora miało sens należy dla każdego szyfrowanego wiersza zastosować inny, najlepiej unikatowy authenticator.

Więcej informacji na temat szyfrowania przy pomocy powyższych funkcji znajdziecie na MSDNie.

 



Tagi :   authenticatordecryptbypassphraseencryptbypassphrasekryptografiasql serverszyfrowanie

Powiązane wpisy

  • SmogBot – kilka dobrych praktyk z zakresu bezpieczeństwa bazy danych

  • „SQL Server w AWS” – na PLSSUG Kraków – zapraszam

  • „Zarządzanie cyklem życia bazy danych” – zapraszam na prelekcję

  • Problem ze startem SQL Server Agent

  • Dodaj komentarz

    Click here to cancel reply

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>





    Łukasz Tomaszkiewicz

    Łukasz Tomaszkiewicz

    Pasjonat chmury, szczególnie AWSa, który nieustannie automatyzuje powtarzające się czynności i optymalizuje procesy, przy okazji wdrażając dobre praktyki dotyczące bezpieczeństwa. Jego szerokie doświadczenie w zakresie tworzenia oprogramowania, projektowania baz danych, a także wirtualizacji serwerów i zarządzania infrastrukturą w chmurze pozwala mu spojrzeć przekrojowo na współczesny stack technologiczny.

    W wolnym czasie fotograf, sporadycznie piszący blogger :) a także regularny prelegent na krakowskich grupach związanych z IT.

    Wyznawca Vim'a :)

    Kategorie

    • Ansible
    • AWS
    • C#
    • Chatboty
    • Cloud
    • Daj się poznać 2017
    • Docker
    • Inne
    • Linux
    • Open source
    • Organizacyjne
    • Prelekcje
    • Sieci komputerowe
    • SQL Server
    • Windows
    • Windows Server
    • Wirtualizacja

    Najczęściej czytane

    • Creating single node VSAN cluster
    • SQL Server – walidacja numerów PESEL i NIP
    • Konfiguracja serwera DHCP na routerach Cisco
    • Aktywacja routingu IP w Windows 7 / Windows Server 2008
    • Konwersja maszyn wirtualnych z ESXi do Hyper-V przy użyciu SCVMM 2012
    • Jak podłączyć program R do SQL Servera?

    Tagi

    .net ai ansible asp.net mvc aws aws cli bot builder bot framework c# centos certyfikaty chatbot chatboty cisco cmd docker dsp2017 esxi hyperv kontenery konteneryzacja linux mvc nlp openvpn plssug pobieranie powershell prelekcje rancher redhat router sieci smogbot sql server ssd ssl vmware vsphere windows windows mobile windows server wirtualizacja wit.ai wrzuta

    Copyright © 2006-2018 by Łukasz Tomaszkiewicz. Wszelkie prawa zastrzeżone