Trying to add extensions to my rust fingerprint
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- rust
- Lĩnh vực
- networking, security
Hướng nghiên cứu
Bắt đầu với các getter ExtensionType::CERT_COMPRESSION và ExtensionType::PADDING hiện có, sau đó so sánh tài liệu BoringSSL/OpenSSL với bảng tiện ích mở rộng TLS của IANA được liên kết trong báo cáo. Sử dụng tls.peet.ws/api/clean để xác minh hành vi; hoàn tất nghĩa là xác nhận liệu đã có hỗ trợ setter cho các tiện ích mở rộng này hay xác định rõ phạm vi API còn thiếu.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
I am tryin to change my rust client fingerprint by adding (27,17513,41) ext numbers => 771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-23-65281-10-11-35-16-5-13-18-51-45-43-[ 27 ext here ]-[ 17513 ext here ]-21-[ 41 ext here ],29-23-24,0
What I did:
- Read the openssl doc and the tls ext table https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xml
- Found a getter ExtensionType::CERT_COMPRESSION, ExtensionType::PADDING but no setter.
- I am not using actual certificate in my rust client as I also disabled checking for it with verify mode.
- Calling https://tls.peet.ws/api/clean to read my ja3
- Tried using clear_option and set_option to add and remove SslOption::NO_COMPRESSION but it did nothing // Disables the use of TLS compression
- Read the github code and rust doc as all I can find is this about it (2020-12-02 draft-ietf-tls-certificate-compression is now RFC 8879)
- Using boring / boring-hyper / hyper in my rust client
- Tried using rustls but not enough supported ciphers.
Do I need to have an actual certificate and find someway to compress it? Did I miss something crucial? If there is a solution, does it work on rest of the ExtensionTypes? Is it not implemented for rust yet?
Tryin to mimic the chrome fingerprint for rust, I already have an app running in electron client and Go (with libraries) both have chrome fingerprint. Now doing it in rust for benchmark.
Any help or advice would be great, thanks alot.
let mut connector = HttpConnector::new();
connector.enforce_http(false);
let mut ssl = SslConnector::builder(SslMethod::tls()).unwrap();
ssl.set_verify(SslVerifyMode::NONE);
ssl.enable_ocsp_stapling();
ssl.enable_signed_cert_timestamps();
ssl.set_alpn_protos(b"\x02h2\x06http/2").unwrap();
ssl.set_cipher_list("ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-ECDSA-CHACHA20-POLY1305,ECDHE-RSA-CHACHA20-POLY1305,ECDHE-RSA-CHACHA20-POLY1305,ECDHE-RSA-AES128-SHA,ECDHE-RSA-AES256-SHA,AES128-GCM-SHA256,AES256-GCM-SHA384,AES128-SHA,AES256-SHA").unwrap();
let ssl = HttpsConnector::with_connector(connector, ssl).unwrap();
let client = Client::builder()
.pool_max_idle_per_host(0)
.build::<_, Body>(ssl);
let req = Request::builder()
.method(Method::GET)
.uri("https://tls.peet.ws/api/clean")
.header("user-agent", "my agent")
.body(Body::from(""))
.unwrap();
let res = client.request(req).await.unwrap();
let buf = body::to_bytes(res).await.unwrap();
println!("{:#?}", buf);
- Ngôn ngữ chính
- Rust
- Star
- 526
- Fork
- 178
- Merge trung bình
- 15 giờ 34 phút
- Pull request đã merge (30 ngày)
- 9
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của cloudflare/boring
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
cloudflare/boring#527 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
cloudflare/boring#526 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
5.3.0 regression: SSL_set_cert_cb(..., NULL, ...) stores a null function pointer instead of clearing, crashing the next handshakeCó thể đã có người làm @dorianverlaine đã nhận 1 ngày trước. Đang mở
Độ khó 3/5 Nửa ngày Mức phù hợp với người mới 62/100
cloudflare/boring#537 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
SLH-DSA supportCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
cloudflare/boring#522 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Build failure on 32 bit freebsdĐang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
cloudflare/boring#517 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của cloudflare/boring
Issue tương tự
-
Stack overflow in `check bans` with `include-dependencies = true` and a dev-dependency cycleĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
EmbarkStudios/cargo-deny#910 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
tursodatabase/turso#10054 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
build: Update rust versionCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởdependencies
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
ibm-granite-community/granite-cli#229 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
setTargetAtTime booked ahead of time starts its curve early (values blow up before start_time)Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
orottier/web-audio-api-rs#658 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
aosama/astronomical#1318 ·
Maintainer thường phản hồi trong vòng 1 ngày