|
|
Opublikowano 18.06.2021 09:41:15
|
|
|
|

SSL (Secure Socket Layer) wykorzystuje szyfrowanie danych, uwierzytelnianie oraz mechanizmy weryfikacji integralności wiadomości, aby zapewnić gwarancję bezpieczeństwa protokołów warstwy aplikacyjnej opartych na niezawodnych połączeniach, takich jak TCP. Jeśli transmisja użytkownika nie odbywa się przez SSL, dane są przesyłane w tekście jawnym w sieci, co otwiera możliwości dla osób o ukrytych motywach. Dlatego wiele dużych stron internetowych ma teraz włączoną funkcję SSL. Podobnie, w naszej bazie danych, jeśli klient łączy się z serwerem, aby pobrać dane zamiast korzystać z połączenia SSL, dane mogą zostać skradzione podczas transmisji.
Główne funkcje oferowane przez protokół SSL to:
1. Poufność transmisji danych: Przesyłane dane są szyfrowane za pomocą algorytmu klucza symetrycznego. 2. Mechanizm uwierzytelniania: Na podstawie certyfikatu serwer i klient są uwierzytelniani za pomocą metod podpisu cyfrowego, gdzie uwierzytelnianie klienta jest opcjonalne. 3. Weryfikacja integralności wiadomości: Algorytmy MAC są używane do weryfikacji integralności wiadomości podczas transmisji.
Podczas korzystania z .NET/C# do obsługi bazy danych MySQL,Domyślna wartość SslMode to Preferowana, jeśli serwer to obsługuje, użyj SSL.
Logowanie do linku jest widoczne.
Stosując domyślną metodę, w przypadku dużej liczby współbieżności, błąd może wyglądać następująco:
Wiadomość angielska: Błąd otwarcia połączenia. Autologacja do hosta '192.168.1.100' dla użytkownika 'itsvse' przy użyciu metody 'mysql_native_password' zakończyła się niepowodzeniem z komunikatem: Odczyt ze strumienia zakończył się niepowodzeniem.
Błąd otwarcia połączenia. błąd przy łączeniu: Czas minął. Okres przejścia minął przed uzyskaniem połączenia z pulą. Mogło to nastąpić, ponieważ wszystkie połączenia połączone były używane i osiągnięto maksymalny rozmiar puli.
Użycie SSL zapewnia bezpieczeństwo transmisji danych, ale jednocześnie obniża efektywność zapytań i wykonywania, zwiększając presję na bazę danych i programy. Ponieważ nasza baza danych działa w środowisku sieci prywatnej, jest stosunkowo bardzo bezpieczna i nie wymaga szyfrowania transmisji, więc możemy zwiększyć efektywność i wydajność bez szyfrowania SSL.
Porównanie wydajności SSL przed i po (QPS):Logowanie do linku jest widoczne.
Z danych testowych wynika, że po włączeniu SSL QPS w bazie danych jest średnio zmniejszony o około 23%, co stosunkowo wpływa na wydajność. Z perspektywy implementacji SSL konieczne jest uścisk dłoni, szyfrowanie, deszyfrowanie i inne operacje podczas nawiązywania połączenia. Dlatego czas spędzany jest zasadniczo na etapie połączenia, co może powodować większą utratę wydajności w aplikacjach korzystających z krótkich linków, takich jak tworzenie w PHP. Jednak może być znacznie lepiej, jeśli używasz pul połączeń lub długich połączeń.
Aby poprawić wydajność, zmodyfikuj ciąg połączeń w następujący sposób:
(Koniec)
|
Poprzedni:.NET/C# ustala minimalną liczbę wątków w ThreadPool.SetMinThreads, aby poprawić wydajnośćNastępny:MySQL określa, czy tabela lub pole istnieje podczas dodawania nowej tabeli
|