SSL (Secure Sockets Layer) и TLS (Transport Layer Security) — это криптографические протоколы, обеспечивающие безопасную передачу данных в сети. Они используются для шифрования соединений (например, в HTTPS, FTPS, SMTP). Хотя термины часто используют взаимозаменяемо, TLS является более современным и безопасным преемником SSL.
Характеристика | SSL | TLS |
---|---|---|
Шифрование | Устаревшие алгоритмы (RC4, DES) | Современные (AES, ChaCha20) |
Безопасность | Уязвим к атакам (POODLE, BEAST) | Защищённые версии (особенно 1.3) |
Производительность | Медленнее из-за устаревших методов | Оптимизированное рукопожатие |
Совместимость | Отключён в современных системах | Поддержка даже в TLS 1.3 |
Пример проверки TLS-версии в Go:
package main
import (
"crypto/tls"
"fmt"
"net/http"
)
func main() {
client := &http.Client{
Transport: &http.Transport{
TLSClientConfig: &tls.Config{
MinVersion: tls.VersionTLS12, // Минимальная версия TLS
},
},
}
resp, err := client.Get("https://example.com")
if err != nil {
fmt.Println("Ошибка:", err)
return
}
defer resp.Body.Close()
fmt.Println("Статус:", resp.Status)
}
TLS — это современный стандарт безопасности, полностью заменивший SSL. Все новые системы должны использовать минимум TLS 1.2, а в идеале — TLS 1.3. SSL всех версий считается устаревшим и небезопасным.