Sunday, August 28, 2016

Lãnh đạo vs hoa hậu


Video ở trên đưa ra một thực trạng đáng báo động, khi mà một bộ phận không nhỏ thanh niên Việt Nam không biết ai đang lãnh đạo đất nước mà lại biết rõ vú, đít, háng của ai đang đại diện cho nhan sắc, trí tuệ dân tộc.

Tôi đề nghị hai giải pháp, một ngắn hạn, một dài hạn, nhưng có thể tiến hành song song.

Trong ngắn hạn, bầu hoa hậu làm lãnh đạo. Tại sao không? Hoa hậu vừa đẹp, vừa tài năng, tiếng Anh tiếng em trôi chảy, được cả dân tộc say đắm, có kinh nghiệm thi đấu quốc tế... ăn đứt mấy ông vừa già vừa xấu vừa lú. Đế Quốc Mỹ có thể sẽ có nữ tổng thống đầu tiên, lẽ nào chúng ta lại chịu thua?!

Về dài hạn, bầu lãnh đạo làm hoa hậu. Lãnh đạo của chúng ta tài sắc đâu kém gì các cô hoa hậu. Ông nào bà nào cũng đủ các thể loại huy huân chương gắn đầy vú, nhiều khi rải rác xuống tận háng vẫn không đủ chỗ. Đế Quốc Mỹ còn tổ chức cho các ứng viên tổng thống hùng biện với nhau, lẽ nào chúng ta không thể xem lãnh đạo thi vấn đáp!?

Từ rày về sau hễ ở đâu có thi hoa hậu, ở đó chúng ta sẽ tổ chức thi bí thư. Chúng ta sẽ có các cuộc thi như Bí Thư Các Dân Tộc Miền Núi, Bí Thư Các Dân Tộc Miền Xuôi, Bí Thư Đồng Bằng Sông Cửu Long, Bí Thư Thể Thao, Bí Thư Nhân Ái, Bí Thư Qua Ảnh, Bí Thư Áo Tắm, Bí Thư Áo Dài, Bí Thư Mạng Xã Hội, v.v. Đỉnh cao sẽ là cuộc thi Bí Thư Việt Nam, kéo dài 4 tháng, đêm chung kết truyền hình trực tiếp, với 30 gương mặt xuất sắc nhất đại diện cho giai cấp công nhân Việt Nam. Không cần biết ông là ai, không cần biết bà từ đâu, nhưng chắc chắn rằng người đăng quang Bí Thư Việt Nam sẽ là kết tinh của nhan sắc, trí tuệ, tâm linh, tín ngưỡng, tình yêu, tình dục và cả ẩm thực của cả dân tộc Việt.

Tuesday, August 23, 2016

The Internet of Broken Protocols: Showcase #5

(complete list of protocols: https://vnhacker.blogspot.com/search/label/The%20Internet%20of%20Broken%20Protocols)

Administrative note: I've posted solutions to the first 4 challenges. Some readers again found attacks that I wasn't aware of, but I'm not surprised anymore :=).

I'm interested in making my puppy protocols less broken, so please share with me your "patches". I'm also open to challenge submissions, please drop me a line if you have something cool to share.

---

In the past few years I've found many use cases in which doing crypto in Javascript makes a lot of sense. This challenge is one of those cases. Although the crypto is trivial the whole protocol is complex, involves many players and requires a basic knowledge of web security. Your task is to identify any weaknesses and propose a fix. You can leave your findings in a comment or email me at thaidn@gmail.com. I'll update the post with my solution in a few days.

This protocol makes web ads load faster by reducing round trips needed to fetch the ads. It has 4 participants:

* The advertiser (e.g., Coca Cola, Nike, etc.) creates ads and uploads them to the ad serving system. An ad is a piece of HTML and Javascript and could be malicious.

* The ad serving system (e.g., DoubleClick, Facebook, etc.) verifies ads, rejects malicious, and serves supposedly good ads from https://www.important.com.

* The publisher (e.g., New York Times, etc.) gets ads from either the advertiser or the ad serving system and displays them on their website at https://www.publisher.com. Since ads could be malicious, they will be served via an iframe sourced to https://www.important.com (so that they can't interfere with anything running on https://www.publisher.com, thanks to the same-origin policy).

* The end user visits https://www.publisher.com with their browser and sees ads.

As the name implies https://www.important.com is an important origin because it serves all the ads and it also runs some other sensitive services. How the ad serving system validates ads is outside the scope of this challenge, but let's assume that it catches all malicious ads. Having said that, there's some weakness in the protocol that you can exploit to serve an arbitrary ad off https://www.important.com.

The protocol consists of two steps: provisioning and rendering.

# Provisioning

1. The advertiser uploads an ad to the ad serving system.

2. The ad serving system verifies the ad. If it is good, the ad serving system encrypts the ad with a random key, and wraps the random key with a long-term key, returns this piece of HTML

<iframe name="{ENCRTYPED_AD}" src="https://www.important.com/encrypted_ad?wrapped_key={WRAPPED_KEY}">

Both encryptions are authenticated (e.g., AES-GCM or some traditional encrypt-then-MAC scheme). When loaded on a browser, https://www.important.com/encrypted_ad unwraps the key, and returns a small, cachable piece of Javascript that uses the key to decrypt the "name" attribute and displays the decrypted ad. Storing the ad in the iframe's name attribute is a neat hack (see the first comment of this bug to understand why it works), and it really makes ads load faster because the browser usually doesn't need to send any other request to fetch the ad.

# Rendering

1. User visits https://www.publisher.com.

2. The publisher contacts the advertiser who gives them the piece of HTML received at the end of the provisioning step (note: usually the publisher doesn't contact the advertiser directly, there's another player that I've omitted to simplify the protocol).

3. The publisher inserts the iframe to their website.

4. The user's browser loads the iframe and renders the ad.

Wednesday, August 17, 2016

Những người tử tế

Hôm trước có một công ty nhờ tôi tư vấn về công nghệ thông tin. Tôi chỉ nói chuyện một buổi, cũng không giúp được gì nhiều, nên khi họ hỏi số tài khoản để chuyển thù lao tôi nói thôi khỏi và nhắn là nếu mấy anh có lòng thì đóng 1-2 triệu gì đó cho quỹ Cơm Có Thịt là được.

Tôi tưởng họ quên rồi nhưng ai dè hôm nay họ gửi email này thấy vui quá nên tôi xin phép họ cho đăng trên blog.

Chào Thái,

Mình xin lỗi vì thông tin gửi bạn khá muộn sau khi được sự giúp đỡ của bạn.



Bên mình đã góp 10tr vào quỹ “Cơm có thịt”.
#
Đây là quỹ mà bên mình lập ra :
https://www.facebook.com/Quy.Trai.tim.Dai.Viet/?fref=nf

1 lần nữa cảm ơn bạn đã giúp đỡ bên mình. Chúc bạn nhiều sức khoẻ!