ARkadaşlarım aBilerim rolling code adında yeni duyduğum yabancısı olduğum bir sistem var
nasıl ve nerden başlamalıyım
hedefim pic ile kodları okuyup eproma kaydetmek!
yani xxx numaraya sahip kod girişi yapıldı eprom tarandı kod yetkilendirildi. ok verildi neyse artık program devam edecek!
hiç bilgim yok bu konularda öğrenmek istiyorum kaynak veya yol gösterirseniz sevinirim! teşekürler!
nerede kullanıcaksınız bu sistemi tam olarak açıklarsanız yardımcı olmaya çalışırız.
ben bu sistemi otomatik garaj kapısı
yapmakta kullanacagım
hedefimde şu elmizdeki sinya kaynağı kumandanın gönderdiği sinyali okuyup onu tanımlamlayarak kaydetmek
ve ilerki safhalarda yetkilendirmek
elinizdeki kumandanin varsa resmini markasini modelini kullandığı encoder ıc yi buraya yazın size uygun kod bulmaya çalışayım.
Benim Problemim Bu noktada Başlıyor.
Biraz Hayalperest Bir Kişiliğim var Şimdi Elimde İtalyan Malı
Bir devre var Adamlar 1 tda5200 receiver 1 pic18f452 ve 1 adet 24c16 eprom ile işi bitirmişler
Sistem Kodları okuyarak eproma Kaydedebiliyor
yani Herhangi bir kodu kaydedip İşlem yapabiliyorsun!!fotoğrafını cekebilirsem inşallah yayınliycam!!
hangi program dilinde kod yazıyorsunuz?
Arkadaş Basic diye başlıktan sonra bu mesajı verdiğine göre Basic ile program yazacak.
İşin program kısmını bırakalımda Rolling Code mekanizmasını biraz açmaya çalışalım ne dersiniz?
Önce hemen MicroChip firmasının bu işle ilgili hazır programlanmış entegre sattığını bildireyim.
Ancak nedir bu rolling code acaba. Türkçesi yuvarlanan kod anlamına geliyor. Biraz araştırırsanız her seferinde farklı şifre üreten bir sisteme karşılık geldiğini anlarsınız. Ancak işin püf noktası alıcı ile vericinin aynı anda aynı şifreleri üreterek çalışmalarıdır. Yine araştırırsanız, verici oluşturduğu şifre ile ilgili hiç bir veriyi alıcıya vermemektedir. Peki alıcı ile verici arasındaki senkron nasıl sağlanmaktdadır. İşte işin bu kısmı bilinmiyor. Kimsede açıklamıyor elbette. Yada ben bulamadım bu konuda herhangi bir bilgi. Yoksa biribirinden farklı şifreler üretmek çok zor değil. Hatta bunları önceden üretip eproma kayıt edebilir ve sonrada aralarından rastgele seçim yapıp bunu alıcıya yollayabilirsiniz. Alıcıda hafızasında bulunan şifreleri tarayıp içinde yollanan şifrenin olup olmadığına bakar ve var ise açılacak yeri açar değilse açmaz gibi bir mantık yürüterek iş yapmak mümkün ama hız faktörü bunu engeller sanırım. Zira en azından 500-100 adet değişik şifreyi bir anda taramak ve içinden birini bulmak zaman alan bir işlemdir. Belkide değildir !.
Açıkcası bu sistemin nasıl çalıştığını bilen birisi açıklarsa memnun olacağım.
Ete
Evet onu bende farkettim arkadaş C üzerine çalışıyor olsaydı kod paylaşabilirdim ama picbasic de yardımcı olamıyacağım 2 yıl kadar önce bir asm kod parçası üzerinden roll döngüsünü çözdüm ve c ye geçirdim sizede sormuştum o zaman bana cevap vermemiştiniz şimdi mantığını anlatmaya çalışayım elimden geldiği kadar. Eski çalıştığım firma halen bu kod mantığında ürünler satmakta neyse bize bizden var çare diyerek başlıyayım.
Rolling code bir güvenlik altyapısı üzerine tasarlanmış bi sistem bu güvenlik kopyalanamamasını sağlıyor bazı açıkları olmasından dolayı microchip yeni encoder ler üretti artık araçlarda kullanılmıyor ancak hala revaşda bi sistem. anahtarlık kopyalama sistemleri rollcode anahtarlığı kopyalayamıyor nededini en son anlatıcam.
Şöyl çalışıyor 16 bit bir role code döngüsü var bu döngüye giren 16 bit kod döngüden çıktığında yeni bir değer alıyor sonucu tekrar girerseniz tekrar yeni değer alıyorsunuz. Uygulamada çalışması ise:
-Verici kumanda rastgele bir kodu rolling döngüsüne sokar. (bu kod 0xFFFF olamaz olursa sonucda 0xFFFF olur döngü hiç çalışmaz.)
-Sonucu Aliciya gönderir.
-Alici bu kodu kaydeder.(eeprom burada gerekli)
-Verici tuşu bırakılır tekrar basılır.
-Verici bir önceki rolling sonucunu roll döngüye sokar.(verici içinde burada eeprom gerekli ama pilli kumandalarda ram de iş görüyor).
-Sonucu alıcıya gönderir.
-Alici ilk aldığı kodu rolling döngüye sokar.
-Çıkan sonuç yeni gelen kodla eşleşirse bilgi alınır.
-Eşleşmez ise eşleşmeyen kodu tekrar rolling döngüye sokar bir sonraki sonuç ile karşılaştırır bu işlemi 16 veya 32 kere yapabilir zaman söz konusudur. bunun sebebi
kumandanın alıcı duymuyorken birkaç kez daha kullanılıp rolling kod atlanmış olup olmadığını anlamaktır. tek işlem için kullanıcının tuşa 2 kez basması istemeyiz ama buradada bir açık vardır oda şudur:
Rolling kod sistemlerde alıcıyı kapatıp(veya duymamasını sağlayıp) kumandaya (16 lı sistemde) 17 kez bas bırak yaparsaniz alıcıya enerji verdiğinizde ilk bastığınızda çıkış alamazsınız ilki alıcı hafızasına yerleşir 2. basışda işlem görmeye başlar. kayıt işlemleride bu şekilde olur. Alicinin son rolling kodu hafizasında saklaması bir sonraki gelenide sonuncudan türetmesi lazım. Bu mantıkda çalışan sistemler kopyalanamıyor kopya anahtarlıklar yeni rollcode üretemedikleri için ama bir açıkda şu var alıcı duymadığı bir sırada kopyalanıp orjinal anahtar hiç devreye girmeden kopya anahtarlık kod gönderirse sıradaki roll code denkgeldiği için bir kereye mahsus alici çıkış sağlıyor sonra birdaha çalışmıyor buda önemli bir güvenlik açığı.
bunu gerçekleştiren roll döngüsü c kodu aşşağıdadır:
void roll_cevir ()
{
unsigned char count=16,sys_ste,width;
do{
BIOS0=son_r0; // low byte
BIOS1=son_r1; // high byte
BIOS0&=0x90;
BIOS1&=0x03;
sys_ste=0;
width=10;
do{
asm("rrf _BIOS1,f");
asm("rrf _BIOS0,f");
if(CARRY)sys_ste^=0x40;
}while(--width);
sys_ste^=0x40;
BIOS0=son_r0;
BIOS1=son_r1;
asm("rlf _BIOS0,f");
asm("rlf _BIOS1,f");
BIOS1&=0x03;
BIOS0&=0xFE;
if(sys_ste&0x40)BIOS0|=1;
son_r0=BIOS0;
son_r1=BIOS1;
}while(--count);
}
Alıntı yapılan: cabbar27 - 22 Mart 2011, 16:53:51
ARkadaşlarım aBilerim rolling code adında yeni duyduğum yabancısı olduğum bir sistem var
nasıl ve nerden başlamalıyım
hedefim pic ile kodları okuyup eproma kaydetmek!
yani xxx numaraya sahip kod girişi yapıldı eprom tarandı kod yetkilendirildi. ok verildi neyse artık program devam edecek!
hiç bilgim yok bu konularda öğrenmek istiyorum kaynak veya yol gösterirseniz sevinirim! teşekürler!
Eğer kendiniz bir sistem kurmak isterseniz Microchip te örnek kaynak kodlar var ancak başkasının yaptığı bir sistemin üzerinden çalışmak istiyorsanız boşuna uğraşmayın çünkü güvenlik olarak bu yazılıma yada cipe üretici kodu olarak bir kod giriliyor bu kodu bilmeden hiç bir şekilde doğru verilere ulaşamaz istediğiniz kontrolleri yapamazsınız. Detaylı bilgi ve örnek kodlara bu linkten ulaşabilirsiniz. Kolay gelsin http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2074
Anladim kardesim demek istediklerini ama benim hayat prensibim sudurki:
bana ekmek verme bana ekmek yapmasini ogret dir
bu yuzden calisiyorum iste bu dandik alet sadece 450 euro
bundan onceki calismamdaki yapmak istedigim ve yaptigim cihaz yurtdisinda 2500 euro
ben o cihazi 25 tl ye malettim yani ben daha ekmek yapmaya calisiyorum!!!
Herkesede tavsiye ederim zevkli oluyo!!
onemli olan sistem!! gerisi teferruat!
http://www.confort-electrique.fr/armoire-commande-bft-leo-pi-3673.html (http://www.confort-electrique.fr/armoire-commande-bft-leo-pi-3673.html)
Anladığım kadarıyla aleti yaptınız fakat sadece kumandası eksik kaldı. O kısmı da farklı olarak dizayn edebilirsiniz sorun nedir? Koskoca aleti yapmışsınız da orayı mı yapamıyorsunuz? Arkadaş bildirmiş işte ekmek yapmayı öğretmiş. Kendi üretici kodunuzu, hatta algoritmenızı yazıp kendi kumandanızı yapıvereceksiniz.
Fakat orijinal aletteki ROLLING kodu çözmek istiyorum derseniz bu kısım şüphe uyandırıyor. Otopark çevresinde elinde aletle dolaşan kişiler olup, kumanda sinyallerini algılayıp aynı kumandadan üretebiliyormuş yada elindeki üniversal kumandasına o arabanın kodunu ürettirebiliyormuş. yani kötü bir amaçtır.
Rolling code, yoksa aralarında senkronizasyon olmayan çok sağlam bir algoritma mı,
(http://www.btnet.com.tr/wp-content/uploads/x-ortam/4/4318.jpg)
Bunlar gibi.
yok o yapmis oldugum alet farkli 4094 shiftregister entegreleri bus ile surme mantigiyla calisiyordu
ama sonraki soyledigin kafama yatti :D araba calmak
hic dusunmemistim :D
Alıntı yapılan: OG - 28 Mart 2011, 15:13:07
Rolling code, yoksa aralarında senkronizasyon olmayan çok sağlam bir algoritma mı,
Bunlar gibi.
hocam anlattığım gibi pek sağlam olduğu söylenemez. ama kullanışlı. PT2282 gibi hazır encoderlere sahip çok amaçlı kullanılabiliyor.
Adından da anlaşılabileceği gibi kod her defasında değişiyor, cevap bekleyen bazı sorular
Kodlar dolaşıp yine aynı yere mi geliyor?
Her kod sadece 1 kere mi kullanılır?
Kumanda alıcıyı görmeden kod üretmişse, bu kodun daha önce kullanılıp kullanılmadığını alıcı nasıl anlayabilir?
yanlış anlamışsınız rolling code bir güvenlik codu ID vs gibi düşünmeyin meslea PT2282 de rolling kodu 10 bit gönderir ID bilgisini roll code ile xor lar roll code ile açarsın paketi ID ye bakarsın tutuyorsa roll code doğrulama işlemlerine geçersin.
Yani hep aynı kodlar gönderiliyor öyle mi? Güveniz bir durum. Araba örneğindeki gibi suistimale açık.
Yani gönderen kişinin kodu anlaması veya bilmesi önemli değil. Aynen kaydedip gönderirse kapı açılır MI!
Anladigim kadariyla
verici ile alici devresinin ayni mantikla imal edilmemesi veya programlanmamasi devrenin calismamasina sebep olacak YANLISMIYIM verici elmayi donguye sokunca 2.dongude armut diycek
alicida ayni elmayi dongu icinde 2.adimda portakala cevirecek Misal!! Bu sefer Kodlar uyusmadigi icin devre calismiycak!!
kodların karşılaşma olasılığı 16 bit rolling code da 65535 dır. bu bi güvenlik olasılığı değildir kodlar karşılaşsa bile ID ler burada asıl işi yapar kodlar sadece roll haberleşme mi değilmi güvenliğini sağlar rolling olmayan bir sistem rolling bi sistemi hiçbi zaman kumanda etmez
İşin içine girmişseniz ve açıklarını biliyorsanız bir sefere mahsus bu açığı kullanabiliyorsunuz. ama bunun olasılıkla alakası yok tamamen kodu kırmak için uğraşmakla alakalı.
Alıntı Yapkodların karşılaşma olasılığı 16 bit rolling code da 65535 dır.
Yani bu kadar deneme yapılırsa bir tanesi kesin tutar mı demek oluyor? Sonrası ise şifrenin tutup tutmamasına kalmış . Onun olasılığı nedir peki? şifre kaç bittir? Otomatik deneme yapan bir sistem olsa kodu kıramaz mı?
Yakınlarda bir cihaz sürekli deneme yapıyor. 3-5 gün sonra kepenkler açılır mı?
20 bit adres kodu var 10 bit rolling kodu var 30 bit olasılığı tartışmaya gerek varmı ?
bence hayir cunki arkadasimin demek istedigide su
rolling dongu daima ayni prensipte calisir onemli olan o kodu aliciya gonderen cihazin ID si yani ismi
ayni kodu 255 kisi gondersin ama kodu gonderen alicida ahmet ise ahmetin gonderdigi komut islenir
X-fi kardesim vericinin kod gonderme diyagramini gosterirmisin yani once id bilgisi sonra kod mu nasil bir sistemle tanimliyor!!
http://www.datasheetcatalog.org/datasheet/PrincetonTechnologyCorporation/mXvqxtz.pdf
bende öyle bir kaynak yok dediğim gibi ürüne çevirdik satıyorduk sorularınız varsa cevaplayabilirim sadece.
Peş peşe üretilmiş 4 rolling kodu için bilgi verebilirmisin.
Diyelimki ilk üretilen kod ;
Birinci=$05AB
buna bağlı olarak
İkinci=?
Üçüncü=?
Dördüncü=?
nedir.?
Ete
hocam şu anda çalışır bir cihazım yok o yüzden bişey söyliyemiyorum ama aynı veriyle girerseniz hep aynı sonuç çıkar hesaplayan program arka sayfada döngüden çıkan sonucu tekrar girererek bir sonraki rolling code ulaşıyoruz.
sizin sorduğunuzda zaten oydu galiba sonuç giriş oluyor bir sonraki için.
Alıntı yapılan: ete - 28 Mart 2011, 17:24:10
Peş peşe üretilmiş 4 rolling kodu için bilgi verebilirmisin.
Diyelimki ilk üretilen kod ;
Birinci=$05AB
buna bağlı olarak
İkinci=?
Üçüncü=?
Dördüncü=?
nedir.?
Ete
Ornegin Von Neumann'in 1946da onerdigi middle square metodunu kullanmis olsaydik:
Birinci: 05AB ise
ikinci:1FA4
ucuncu:F424
dorduncu:1104 olurdu
tabii siz 1997de onerilen Mersenne twister kullanmayi tercih edebilirdiniz (snuclarin donguye girmemesi vs yuzunden)
Sa arkadaşlar bizde garaj kapılarında bu sistemi kullanıyorduk ama ne olduğunu sizin sayenizde az çok anladım.Aprimatic marka modül elime geçerse fotoğrafını yayınlayacağım.Herkese selam