شنبه, ۱۴ دی ۱۳۹۲، ۱۲:۱۰ ب.ظ
تنبل
نباش!
۱ نظر
۱۴ دی ۹۲ ، ۱۲:۱۰
به نقل از ویکیپدیای فارسی، پروتکل SSL/TLS به برنامههای Client/Server اجازه میدهد که در شبکه از طریقی که از شنود و جعل پیام جلوگیری میکند، با یکدیگر ارتباط برقرار کنند. این پروتکل احراز هویت و ارتباط مطمئن در اینترنت را از طریق استفاده از رمز نگاری فراهم میکند.
این پروتکل نسخههای متفاوتی دارد. این نسخهها از SSL 1.0 شروع شد تا SSL 3 و بعد شد TLS 1.0 بعد TLS 1.1 و در حال حاضر جدید ترین آنها TLS 1.2 هست. طبیعتا جدید ترین نسخه، بیشترین امنیت را دارد. اما به لطف دستکاریهای دوستان حاکم بر زیرساخت اینترنت ایران، امکان استفاده از هیچ کدام از این نسخهها بجز SSL 3 برای ما ایرانیها فراهم نیست.
برنامهها هم بصورت پیشفرض سعی میکنند از جدید ترین نسخه که TLS هست استفاده کنند، اما چه میدانند که اینجا ایران است :) در نتیجه مثلا وقتی دستور
curl https://github.com
را اجرا میکنیم با خطای زیر مواجه میشویم:curl: (35) Unknown SSL protocol error in connection to github.com:443
خیلی از برنامهها از جمله git و yaourt برای برقراری ارتباط خود از کتابخانهی curl استفاده میکنند. در نتیجه حتما کاربران ایرانی این برنامهها هم با این مشکل مواجه شده اند.---
lib/vtls/openssl.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c
index 7a21c73..c44f773 100644
--- a/lib/vtls/openssl.c
+++ b/lib/vtls/openssl.c
@@ -1552,6 +1552,7 @@ ossl_connect_step1(struct connectdata *conn,
switch(data->set.ssl.version) {
case CURL_SSLVERSION_DEFAULT:
ctx_options |= SSL_OP_NO_SSLv2;
+ ctx_options |= SSL_OP_NO_TLSv1; /* Disable TLS */
#ifdef USE_TLS_SRP
if(data->set.ssl.authtype == CURL_TLSAUTH_SRP) {
infof(data, "Set version TLSv1.x for SRP authorisation\n");
---