dm-verity-ramdisk文件系統(tǒng)校驗的解決方法
近期做的一個項目,由于客戶對安全性要求比較高,涉及到文件系統(tǒng)校驗的問題,起初是在ramdisk中掛載rootfs后對所有重要的文件檢查sha256,但是隨著rootfs的逐步增大,發(fā)現(xiàn)校驗花費的時間太長,竟然達到十幾秒,于是就想改用一種方案,首先想到的是整個rootfs校驗后在掛載,這樣肯定是比一個文件一個文件校驗要來得快些,但是項目中用的是nandflash,并不是EMMC,所以文件系統(tǒng)只能采用支持壞塊管理的ubifs,于是這里就存在問題了,ubi層負責邏輯塊到物理塊的映射,也就是說在物理存儲上塊不一定是邏輯連續(xù)的,這樣在ubifs還沒有掛載之前讀取整個鏡像然后整體校驗肯定是行不通的,一個解決辦法是讀取ubi卷設(shè)備而不是mtd設(shè)備,這樣的話是可行的,但是一種更好的辦法是采用dm-verity,但是這個是Linux項目,并不是Android項目,通過對dm-verity移植,這里記錄一下對dm-verity的理解。
dm-verity是什么?
【資料圖】
它是dm(device mapper)的一個target,是一個虛擬塊設(shè)備,專門用于文件系統(tǒng)的校驗
+------------------------------+
| fs |
+------------------------------+
|
↓
+-------------------------------+
| dm-verity |
+-------------------------------+
|
↓
+-------------------------------+
| block driver |
+--------------------------------+
|
↓
+-------------------------------+
| block device |
+-------------------------------+
fs在掛載的時候直接指定dm-verity設(shè)備,也就是fs直接交互的設(shè)備是dm-verity,dm-verity調(diào)用真正的塊驅(qū)動去讀取對應的塊,并計算hash值和hash-tree中對應的hash值進行比較,如果相等,則說明塊沒有被篡改,返回塊數(shù)據(jù)給fs,如果不相等,則說明塊被篡改,根據(jù)mode是返回EIO,或者直接重啟。
首先通過ioctl去crt(create)一個dm-verity設(shè)備,通過傳入?yún)?shù)指定這個創(chuàng)建的dm-verity設(shè)備的一些特性,傳入的參數(shù)包括verity-table,當然也可以使用命令直接創(chuàng)建:
Set up a device: # dmsetup create vroot --readonly --table \ "0 2097152 verity 1 /dev/sda1 /dev/sda2 4096 4096 262144 1 sha256 "\ "4392712ba01368efdf14b05c76f9e4df0d53664630b5d48632ed17a137f39076 "\ "1234000000000000000000000000000000000000000000000000000000000000"
verity-table的內(nèi)容如下:
40 def build_verity_table(block_device, data_blocks, root_hash, salt):41 table = "1 %s %s %s %s %s %s sha256 %s %s"42 table %= ( block_device,43 block_device,44 BLOCK_SIZE,45 BLOCK_SIZE,46 data_blocks,47 data_blocks + (METADATA_SIZE / BLOCK_SIZE),48 root_hash,49 salt)50 return table
block_device描述了該dm-verity設(shè)備對應了那個底層的塊設(shè)備,第二個block_device指定了hash-tree存在于哪個塊設(shè)備上,對于我這個項目就是/dev/ubiblock0_0,BLOCK_SIZE描述了多大一個塊對應一個hash,一般都4k, data_blocks描述了有多少個4k的塊,data_blocks + (METADATA_SIZE / BLOCK_SIZE)表示hash-tree在對應塊設(shè)備上的偏移,由此來找到hash-tree,root_hash為hash-tree的根hash。
dm-verity工作在塊設(shè)備之上,所以這里是/dev/ubiblock0_0,于是就不能再用ubifs 了,因為ubifs工作在卷設(shè)備之上,而/dev/ubi0_0是一個字符設(shè)備,所以只能采用工作在塊設(shè)備之上的文件系統(tǒng),我這里采用了squashfs,因為它比較簡單。
dm-verity的工作原理
通過前面的描述,很容易理解dm-verity的工作過程,就拿我這個項目來說,squashfs需要讀取某個塊時,調(diào)用dm-verity讀取對應的塊,dm-verity根據(jù)verity-table中block_device,調(diào)用block_device讀取對應的塊,讀取到塊的內(nèi)容后dm-verity會算出塊的sha256,然后跟verity-hash-tree中相對應的hash值進行比較,如果相等,則說明該塊沒有被修改過,一切正常。
為何dm-verify支持所有的文件系統(tǒng)?
該項目在選用dm-verity之前,我一直都在懷疑dm-verity是否支持ubifs,通過前面的描述,如果你對dm-verity的工作原理足夠理解的話,你就會發(fā)現(xiàn),dm-verity跟文件系統(tǒng)是無關(guān)的,只要文件系統(tǒng)是工作在塊設(shè)備之上的,所以ubifs是不可以的,工作在塊設(shè)備之上的文件系統(tǒng)都是可以的,dm-verity是對邏輯塊校驗hash值,產(chǎn)生hash-tree的時候也是根據(jù)文件系統(tǒng)鏡像來產(chǎn)生的(然后除ubifs之外,不存在邏輯塊的概念,但是可以類似將它看出邏輯塊直接等于物理塊),至于邏輯塊到物理塊直接是怎樣映射,dm-verity根本就不需要關(guān)心。
dm-verity為何這么快?
了解了原理之后這個就很好回答了,因為dm-verity并不需要在掛載前對所有的塊進行校驗,而是在使用的過程中用到哪個塊就校驗哪個塊的hash值,這樣對于像android一個分區(qū)幾個G來說優(yōu)勢就顯得更加明顯了。
dm-verity是如何保證安全的?
前面說過每個block都在hash-tree中記錄了對應的hash值,這樣就能防止別人篡改block的內(nèi)容了,但是如果黑客把block改了之后,重新計算hash把hash-tree中對應的hash值也改了呢,這樣就能神不知鬼不覺了,所以必須要有一種機制防止hash-tree被篡改,hash-tree是這樣一種結(jié)構(gòu),所有的block對應的hash值放在最底層,也就是第0層,如下圖:
第1層的hash值由下面一層的hash值計算得到,除了第0層,其他的層hash值都不對應物理上block的hash值,它們存在的意義只是為了構(gòu)建hash鏈,防止hash篡改,這樣第0層的hash值改變了的話,上層對應的hash值也需要修改,也就是說根hash也需要修改,所以只需要一種機制能保證root-hash不被篡改就行了。
Android中采用的方法是算root-hash的簽名,verity-table中保存了root-hash,對verity-table進行簽名,它們的存儲分布如下:
在Android中,系統(tǒng)進入ramdisk后,由/system/core/fs_mgr/ 負責dm-verity設(shè)備的創(chuàng)建,verity-table的校驗,這里涉及到的一些知識是:
1.如何知道哪些分區(qū)需要校驗?
fs_mgr通過讀取fstab文件,其中記錄了哪些分區(qū)需要校驗
2.如何知道需要校驗的分區(qū)中verity-table的位置?
這是用戶空間(/system/core/fs_mgr/ )的工作,android的做法是通過讀取文件系統(tǒng)的超級塊(Superblock,簡稱SB),里面記錄了文件系統(tǒng)的大小,verity-table緊挨著文件系統(tǒng)鏡像之后
3.簽名的key存放在哪里?
這里指的是public key
verity-table-metadata主要是為了校驗verity-table的合法性,android的格式為:
def build_metadata_block(verity_table, signature): table_len = len(verity_table) block = struct.pack("II256sI", MAGIC_NUMBER, VERSION, signature, table_len) block += verity_table block = block.ljust(METADATA_SIZE, "\x00") return block
verity-table的校驗是在用戶空間(/system/core/fs_mgr/ )中完成的,校驗合法之后會將verity-table傳給kernel使用。
上面說的這些只是Android的一套,自己實現(xiàn)的話沒必要完全按照它的來,比如說verity-table和hash-tree沒有必要放在分區(qū)中,可以放在ramdisk中,簽名和校驗RSA2014可以自己實現(xiàn),public key存放的位置可以自己決定,如放在ramdisk中或放在OTP中。
dm-verity異常處理
dm-verity簽名校驗失敗后會怎么做呢?下面是Android的做法:
在metadata分區(qū)中會記錄dm-verity的狀態(tài),提示是否掛載,同時在dm-verity設(shè)備創(chuàng)建時也會指定mode,dm-verity在內(nèi)核中塊hash校驗失敗后不同的mode表現(xiàn)的行為不一樣。
// Verity modesenum verity_mode { VERITY_MODE_EIO = 0, VERITY_MODE_LOGGING = 1, VERITY_MODE_RESTART = 2, VERITY_MODE_LAST = VERITY_MODE_RESTART, VERITY_MODE_DEFAULT = VERITY_MODE_RESTART};static int load_verity_table(struct dm_ioctl *io, char *name, uint64_t device_size, int fd, char *table,int mode){ ... if (mode == VERITY_MODE_EIO) { //對于比較老的內(nèi)核dm-verity驅(qū)動,是不支持mode的,當block hash校驗不過時總是cause an I/O error for corrupted blocks // allow operation with older dm-verity drivers that are unaware // of the mode parameter by omitting it; this also means that we // cannot use logging mode with these drivers, they always cause // an I/O error for corrupted blocks strcpy(verity_params, table); } else if (snprintf(verity_params, bufsize, "%s %d", table, mode) < 0) { return -1; } ... ioctl(fd, DM_TABLE_LOAD, io);}
指定mode后,kernel中碰到校驗不過的塊的處理:
/* * Handle verification errors. */static int verity_handle_err(struct dm_verity *v, enum verity_block_type type, unsigned long long block){ ... out: if (v->mode == DM_VERITY_MODE_LOGGING) return 0; if (v->mode == DM_VERITY_MODE_RESTART) kernel_restart("dm-verity device corrupted"); return 1;}
記錄一下移植的過程中踩過的坑:
在移植的過程中發(fā)現(xiàn)Android6.0是有bug的,在產(chǎn)生hash-tree的時候:
image_size = os.stat(out_file).st_size
由于img是sparse過后的,所以這里的大小肯定是不對的,正確的做法應該是先unsparse,然后再計算大小。
另外這里采用的是ubiblock:
ubiblock --create /dev/ubi0_0
mtd--->ubi------>ubi vol----->ubiblock
另外還可以采用gluebi:
mtd---->ubi---->ubi vol--->mtd--->mtdblock
ubiblock比較簡單,缺點是只讀,在掛載時必須指定為只讀:
mount -t squashfs /dev/ubiblock0_0 /mnt -o ro
生成燒錄鏡像的過程:
rootfs dir---------mksquash------------>rootfs.squashfs-----------ubinize-------------->rootfs.ubi
把rootfs.ubi燒進去即可。
最終實現(xiàn)的效果如下:
標簽: 文件系統(tǒng)
相關(guān)推薦:
精彩放送:
- []天天看點:李錦記蒸魚豉油是什么?李錦記蒸魚豉油怎么制作的?
- []什么叫信息化管理?信息化管理相關(guān)介紹
- []dm-verity-ramdisk文件系統(tǒng)校驗的解決方法
- []世界關(guān)注:常用的數(shù)學函數(shù) 數(shù)據(jù)分析最常用的excel函數(shù)公式大全
- []PS分配內(nèi)存不足怎么辦?解決方案來了
- []世界觀察:getParameter和getAttribute的區(qū)別是什么?區(qū)別介紹
- []天天播報:科幻小說作家赫內(nèi)·巴赫札維勒:時間旅行的悖論
- []動態(tài)焦點:安卓開發(fā)Android studio學習筆記 利用SQLiteDatabase操作數(shù)據(jù)表
- []什么是股票熔斷?股票熔斷機制有什么意義?
- []今日熱門!人工生命中最關(guān)鍵的一步——虛擬細胞的構(gòu)建
- []焦點要聞:浮點保留兩位小數(shù) R語言初級教程
- []環(huán)球微動態(tài)丨賽爾號星球大戰(zhàn)米咔怎么超進化?超進化的方法步驟?
- []世界熱點!什么是實數(shù)?數(shù)軸上的點與實數(shù)是什么意思?
- []天天觀點:如何自學英語?自學英語的方法有哪些?
- []世界觀天下!意大利旅游局克里斯·瓦洛蒂:鼓勵目的地提供數(shù)字化服務
- []小雛菊的花語是什么?小雛菊有什么寓意?
- []靜電怎么消除?消除靜電的方法步驟?
- []天天新資訊:祖國建設(shè)取得的成就有哪些?祖國建設(shè)取得的成就介紹?
- []熱血江湖怎么快速卡技能?快速卡技能的方法步驟?
- []快資訊丨凱旋王國有什么好玩的?凱旋王國游玩攻略?
- []【天天新要聞】攜程宣布接入百度文心一言,布局“AI+旅行”應用
- []【全球播資訊】科學家發(fā)明事跡有哪些?科學家的發(fā)明有哪些?
- []環(huán)球快看:凌瑋科技:我司二氧化硅主要是凝膠法和沉淀法工藝合成,純度均在98%以上
- []股東股份減持計劃終止 新寧物流說明情況
- []加盟還沒開店被坑加盟費,看我如何追回
- []每日速訊:中信建投期貨2月15日早間交易策略
- []光威復材:這是一個合作研發(fā)項目,目前了解不多
- []天天要聞:海泰科:截至2023年2月10日,公司股東總戶數(shù)為7,588戶
- []每日熱文:在上海工作公司交的深圳社保怎么辦(在上海工作交的深圳社保怎么辦)
- []【世界速看料】《海的盡頭是草原》提名香港金像獎最佳亞洲華語電影
- []暫停參保是當月就停了嗎怎么辦(暫停參保是當月就停了嗎)
- []江蘇銀行寶藏信用卡怎么樣好用嗎(江蘇銀行寶藏信用卡怎么樣)
- []【全球快播報】世界上最悲傷作文《淚》的全文
- []微動態(tài)丨福龍馬:公司與龍巖卓越新能源股份有限公司沒有業(yè)務往來
- []全球訊息:中南文化:公司一定會搶抓經(jīng)濟復蘇機遇,全力提質(zhì)增效,積極開拓業(yè)務,為當?shù)氐慕?jīng)濟發(fā)展貢獻力量
- []【天天播資訊】海南高速:公司董事會、監(jiān)事會換屆工作已于2023年1月6日完成
- []天天熱點評!聚合順:截至2023年01月20日收盤,公司股東人數(shù)為10129
- []天天快看點丨意外社保能報銷嗎(社保意外報銷和疾病報銷一樣嗎)
- []環(huán)球熱消息:跑贏頂流 600億白酒基金強力反彈!后續(xù)空間在哪?國內(nèi)最大白酒基金經(jīng)理發(fā)聲
- []焦點!中信建投:上游即將進入長周期價格下行通道 繼續(xù)看多光伏組件
- []環(huán)球短訊!沒有深圳社??梢栽谏钲谫I房嗎(沒有社保的人能在深圳買房嗎)
- []環(huán)球滾動:大灣區(qū)航空:挑戰(zhàn)老牌王者
- []環(huán)球視點!現(xiàn)代和起亞更新830萬輛汽車防盜系統(tǒng):因只需1根USB線即可破解
- []部分明星私募踏空“甩鍋”預警線遭質(zhì)疑
- []債基迎建倉時點?火爆募集80億 首批混合估值法產(chǎn)品賣爆
- []當前熱門:乙肝可以報銷醫(yī)療保險嗎(乙肝可以報銷醫(yī)療保險嗎)
- []鹽湖股份2月14日現(xiàn)6筆大宗交易
- []多家券商暫停內(nèi)地身份港股開戶,跨境證券何去何從?
- []天天快消息!大葉股份:我們會及時轉(zhuǎn)達給管理層。有關(guān)公司利潤分配計劃敬請關(guān)注公司公告
- []每日速看!昆明拔牙可以用醫(yī)保嗎現(xiàn)在(昆明拔牙可以用醫(yī)保嗎)
- []近100家旅行社被處罰“拉黑”,“大病初愈”的出境游怎么玩?
- []天天熱文:一日售罄、按比例配售再現(xiàn)!還有基金一天涌入超70億元 權(quán)益基金又熱起來了?
- []環(huán)球最新:農(nóng)行app可以提前還房貸嗎(農(nóng)行app可以提前還房貸嗎)
- []全球今亮點!社保10號沒扣到會不會再扣一次(社保10號沒扣到會不會再扣一次)
- []今日要聞!上海拔牙可以走醫(yī)保報銷嗎(拔牙上海醫(yī)??梢詧箐N嗎)
- []環(huán)球快播:在國外可以辦信用卡嗎(在國外可以辦信用卡嗎)
- []世界今日訊!沒有醫(yī)保看病很貴嗎(沒有醫(yī)保看病貴嗎)
- []環(huán)球熱推薦:買車貸款需要什么手續(xù)和條件(貸款買車沒有購車合同怎么回事)
- []全球視訊!不看負債和征信的貸款(不看征信的房產(chǎn)抵押貸款)
- []摩托車保險可以退保嗎(摩托車商業(yè)險怎么退保)
- []每日精選:中國人財保險(ADR)(PPCCY.US)2月14日收盤報23美元/股,漲0.2%
- []當前通訊!臘腸怎么做比較好吃
- []焦點滾動:美股異動 | 叮咚買菜(DDL.US)逆市漲超10% 單季GAAP凈利潤首次轉(zhuǎn)正
- []天天新動態(tài):西恩科技更新招股書:IPO前大手筆分紅“套現(xiàn)”, 趙志安為實控人
- []焦點速看:低保戶可以貸款嗎,符合條件可以貸款
- []辦公室管理制度范本
- []泰國將對外國游客征收入境費具體詳細內(nèi)容是什么
- []1993年以前社保怎么算(1993年到2001年社保怎樣補繳)
- []國內(nèi)十大文學網(wǎng)站排名
- []世界熱議:沒有浦發(fā)銀行網(wǎng)點怎么激活信用卡功能(浦發(fā)不去網(wǎng)點能激活嗎)
- []今日快看!江西這些文化火“出圈”!網(wǎng)友:“戳到我心巴上了”
- []環(huán)球熱點評!金太陽:2月13日公司高管諸遠繼減持公司股份合計2.4萬股
- []全球微頭條丨天秦裝備:2月13日公司高管張澎、王素榮減持公司股份合計4.1萬股
- []友訊達:2月13日公司高管崔濤減持公司股份合計13萬股
- []今頭條!上海艾錄:2月13日公司高管陳曙減持公司股份合計2萬股
- []醫(yī)保幾號可以查詢(醫(yī)保每個月幾號可以查到)
- []環(huán)球微速訊:合肥市醫(yī)保卡丟了去哪里補辦(合肥市醫(yī)??ㄑa辦地點)
- []今日熱門!*ST中潛:2月13日至2月14日公司高管高宗標減持公司股份合計408萬股
- []實時焦點:步科股份:2月13日公司高管池家武減持公司股份合計12.4萬股
- []速遞!海目星:2月9日公司高管劉明清減持公司股份合計6萬股
- []世界快訊:秦安股份:2月9日至2月13日公司高管孫德山減持公司股份合計3.81萬股
- []建設(shè)銀行理財白金卡有年費嗎(建行卡長期不用扣年費嗎)
- []全球快看點丨2022年第四季度五星級飯店平均房價504元
- []養(yǎng)老保險費計入什么會計科目(養(yǎng)老保險費計入什么會計科目)
- []時訊:太陽的壽命還有多久呢_太陽的壽命還有多長
- []神州泰岳:公司目前未與OpenAI、騰訊、百度在自然語言處理(NLP)領(lǐng)域開展合作
- []全球最新:投資者:拿不拿到賠償不重要,但公司要承擔責任 *ST凱樂豈能一退了之?
- []天天觀速訊丨北京社??ㄋ嗅t(yī)院都能用嗎(北京社保卡所有醫(yī)院都能用嗎)
- []愿得一心人,情人節(jié)來寧波阪急“Tu”露真心
- []嘉和美康:截至1月31日,公司的股東人數(shù)為8036戶
- []康華生物:公司正在全力推進募投項目建設(shè),公司按照相關(guān)規(guī)定履行信息披露義務,項目具體進展請關(guān)注后續(xù)公告
- []環(huán)球通訊!盛天網(wǎng)絡(luò):盛天云可以為各種應用提供數(shù)據(jù)支持,包括ChatGPT
- []健康茶飲新風向,甜啦啦功夫茶系列突圍
- []河南農(nóng)商銀行信用卡申請(河南農(nóng)商銀行信用卡到哪里辦)
- []環(huán)球熱資訊!競選學生會宣傳部干事演講稿
- []熱點評!不在蘇州工作了社保怎么辦理(不在蘇州工作了社保怎么辦卡)
- []【播資訊】2月多家航司恢復國際及地區(qū)航線,東航每周可達410班
- []全球熱推薦:信用卡買手機分期占用額度嗎(信用卡買手機分期占用額度嗎)
- []環(huán)球微資訊!只出商業(yè)險不出交強險保費上浮嗎怎么算(只出商業(yè)險不出交強險保費上浮嗎)
- []焦點要聞:貸款還不上如何和銀行協(xié)商延期還款(銀行貸款到期還不上可以延期嗎)
- 【世界獨家】地磁場的基本形態(tài)與演化 你知道多少?
- 小米Connectify無法連接xp怎么辦?解決方法步驟
- 靜態(tài)路由綜合實驗 R6teInetR5公有IP地址的使用方法
- 全球快消息!蘋果顛覆MP3 手機業(yè)的“創(chuàng)新”是怎么做到的?
- 速遞!FTP中文件名亂碼問題怎么解決?Serv-U8字符編碼的設(shè)置
- 每日時訊!什么是pdi檢測?Pentaho數(shù)據(jù)集成的步驟
- 當前觀點:電商數(shù)據(jù)分析中的基礎(chǔ)分析項目——京東訂單數(shù)據(jù)預處理
- 環(huán)球快看點丨英語字母表你會背嗎?26個英語字母表及字母音標
- 焦點速訊:XPE有哪些安全特性?XPE優(yōu)勢與常見問題二
- 全球球精選!如何使用任務計劃程序來定時啟動?黑客干貨教程!
- B站注冊資本增幅400%至5億 目前由陳睿全資持股
- 光源資本出任獨家財務顧問 沐曦集成電路10億元A輪融資宣告完成
- 巨輪智能2021年上半年營收11.24億元 期內(nèi)研發(fā)費用投入增長19.05%
- 紅棗期貨尾盤拉升大漲近6% 目前紅棗市場總庫存約30萬噸
- 嘉銀金科發(fā)布2021年Q2財報 期內(nèi)凈利潤達1.27億元同比增長208%
- 成都銀行2021上半年凈利33.89億元 期內(nèi)實現(xiàn)營收同比增長17.27億元
- 汽車之家發(fā)布2021年第二季度業(yè)績 期內(nèi)新能源汽車品牌收入增長238%
- 中信銀行上半年實現(xiàn)凈利潤290.31億元 期末不良貸款余額706.82億元
- 光伏概念掀起漲停潮交易價格創(chuàng)新高 全天成交額達1.29億元
- 上半年生物藥大增45% 關(guān)鍵財務指標好轉(zhuǎn)營收賬款持續(xù)下降
- 史上第一人!吳亦兵奪得中國網(wǎng)協(xié)球員首個ATP巡回賽冠軍
- 新媒股份:截止至2023年2月10日,公司股東總戶數(shù)為23,228戶
- 金隅集團:請參考公司以往對您相似問題的
- 焦點快播:奧馬電器:公司有部分出口業(yè)務通過線上跨境電子商務平臺開展,目前占比較小
- 錦富技術(shù):公司本次向特定對象發(fā)行股票事項已獲得中國證券監(jiān)督管理委員會同意注冊的批復
- 天天亮點!券商即將入局全國碳市場,我們可以炒碳了?
- 世界觀焦點:超大城市如何打好旅游牌
- 【速看料】大漲近8%!白酒反彈到哪兒了?哪些基金回血快?
- 廣東珠海 :2025年新增光伏裝機規(guī)模約3.7GW
- 精選!強強聯(lián)手!瑞浦蘭鈞牽手蘇文電能!
- 天天熱頭條丨14.58億買爆!“日光基”再現(xiàn) 戶均認購近15萬!權(quán)益基金發(fā)行大提速
- 世界關(guān)注:寧波銀行信用卡哪個卡好用(寧波銀行信用卡好不好)
- 只有11天!寶利國際HJT概念股之旅的誕生與消亡
- 科士達、上能電氣入圍中石化勝利油田孤東光伏電站項目集中式逆變器框架采購
- 【全球播資訊】興業(yè)銀行用了兩年一直不提額(興業(yè)銀行兩年不提額)
- 全球要聞:淘寶成交記錄在哪看?買家查看成交記錄的方法是什么?
- 積水成淵是什么意思?積水成淵出自哪里?
- 【當前獨家】基金持倉成本價怎么算?持倉單價是什么?
- 焦點報道:滬指窄幅震蕩漲0.28%,有色金屬板塊逆市走強,市場焦點股中航電測9天飆升超400%
- 【世界報資訊】DNF彈藥帶什么武器裝備?DNF彈藥帶的武器裝備有哪些?
- 全球快消息!我的僵尸王爺電視劇有哪些?我的僵尸王爺系列電視劇介紹?
- NYMEX或跌破78.45美元
- 每日速訊:dnf宇宙靈魂怎么得?dnf宇宙靈魂攻略?
- 東利機械:公司會在定期報告中披露截至報告期末的股東戶數(shù)
- 環(huán)球今日訊!熊貓tv為什么會倒閉?熊貓tv倒閉的原因是什么?
- 漢宇集團:截至2023年2月10 日,公司股東人數(shù)(已合并)為31,617戶
- 桃林口怎樣釣魚?桃林口釣魚策略?
- 全球微頭條丨水芝澳是什么檔次?水芝澳品牌介紹?
- 情人節(jié)甜啦啦“莓好”上新
- 地鐵設(shè)計:截至2022年6月30日,公司已簽訂的合同保有量累計超過113億元,在手訂單充足
- 全球最資訊丨七彩圣誕樹原理是什么?七彩圣誕樹的“營養(yǎng)液”是什么?
- 每日觀點:珠江鋼琴:公司主要從事鋼琴及數(shù)碼樂器產(chǎn)品的研發(fā)、制造、銷售與服務以及藝術(shù)教育等文化產(chǎn)業(yè)
- 全球觀天下!國際油價下跌,應對俄羅斯減產(chǎn),美國政府再打這張牌
- 環(huán)球新動態(tài):信用卡分期三年利息怎么算的(信用卡分期三年利息怎么算)
- 全球熱頭條丨梅嶺茶香圖
- 全球熱消息:2月14日珠城科技漲停分析
- 2月14日納爾股份漲停分析:氫能源/燃料電池,流感/口罩概念熱股
- 2月14日新華傳媒漲停分析:國企改革,移動支付,上海國企改革概念熱股
- 每日速看!長源東谷:公司新能源混動車型的缸體、缸蓋項目開發(fā)順利,目前已經(jīng)通過試驗驗證,進入初步量產(chǎn)階段
- 每日速看!2月14日金達威漲停分析:長壽藥NMN,維生素,新冠藥物概念熱股
- 全球視訊!男的有社保女的有農(nóng)保,怎么報生育險(男的有社保女的有農(nóng)保,怎么報生育險)
- 當前關(guān)注:人壽康寧終身保險做心臟支架(康寧終身保險保支架嗎)
- 天天關(guān)注:社保個人交200多公司交多少(社保個人交200多公司交多少)
- 【獨家】口腔醫(yī)院用別人的醫(yī)??▓箐N(口腔醫(yī)院用別人的醫(yī)???
- 天天熱議:工信部組織召開新能源汽車動力電池回收利用工作座談會
- 博菲電氣:截至2023年1月31日公司共有股東9,869戶
- 【環(huán)球播資訊】三峽能源:除風電、光伏新能源開發(fā),公司正在積極開展光熱、氫能、壓縮空氣儲能等能源技術(shù)研發(fā)及工程示范
- 全球最新:羅博特科:目前光伏電池鈣鈦礦技術(shù)路徑尚處于早期的研究開發(fā)階段,公司對該技術(shù)方向保持高度關(guān)注
- 創(chuàng)意禮物送男生
- 華媒控股:華泰一媒目前未開展該類技術(shù)的業(yè)務
- 環(huán)球新資訊:儲能+數(shù)字化,深耕綠色能源轉(zhuǎn)型的企業(yè)長啥樣?
- 世界視訊!首旅如家總經(jīng)理孫堅:去搶、去奪,酒店行業(yè)打響爭奪戰(zhàn)
- 省能源局赴山西省調(diào)研能源綜合改革試點和能源要素市場化配置工作
- 八大券商主題策略:有色大年來了!把握順周期機會 這些標的迎來價值重估
- 山東省實施新型儲能“百萬千瓦”行動計劃!
- 【天天播資訊】上海醫(yī)保賬戶每月進多少錢(上海醫(yī)保賬戶每個月多少錢)
- 當前簡訊:旅游迎來“暖春”,2023年國內(nèi)主題公園怎么玩?
- 當前速讀:科華數(shù)能巴西最大儲能項目投運
- 頭條:初一下冊生物基礎(chǔ)知識點總結(jié)
- 中晟高科:目前我公司不具備二噁英處理技術(shù)或產(chǎn)品,感謝您對我們的關(guān)注和支持
- 國纜檢測:截至2023年2月10日,公司股東總戶數(shù)為6,525戶
- 【環(huán)球報資訊】科拓生物:目前公司暫未與明治乳業(yè)(天津)公司進行合作
- 當前焦點!佛山醫(yī)保在廣州定點醫(yī)院(廣州醫(yī)保在佛山的定點醫(yī)院)
- 天天即時看!“頂流”基金經(jīng)理頻頻出手 關(guān)注定增市場回暖機會
- 每日短訊:德賽西威:公司業(yè)務發(fā)展良好,近年來業(yè)務規(guī)模持續(xù)提升,目前訂單充沛,市場前景廣闊
- 今日熱議:一張圖:黃金原油外匯股指"樞紐點+多空占比"一覽(2023/02/14周二)
- 全球今頭條!【BT金融分析師】Lyft股價一度下跌超過30%,分析師稱其長期增長前景堪憂
- 四川牛背山變“牛貴山”?觀光車將收費,景區(qū)稱訂別墅可自駕
- 福特35億美元磷酸鐵鋰電池工廠定了!寧德時代提供技術(shù)支持
- 世界滾動:預期經(jīng)濟復蘇 市場追捧“元素周期表”!周期主題基金經(jīng)理梳理
- 【焦點熱聞】6萬億能帶動經(jīng)濟騰飛么?
- 河北建投4個抽水蓄能項目列入河北抽水蓄能“十四五”重點前期項目
- 世界快播:美盈森:朋友浙江甲骨文超級碼科技股份有限公司為公司參股公司,公司持有甲骨文超級碼9.8%的股權(quán)
- 【全球時快訊】金達威:公司在定期報告中按要求披露股東人數(shù) 其他時點的股東人數(shù)未被董事會授權(quán)披露
- 億晶光電:公司目前沒有硅片產(chǎn)能,公司主要業(yè)務范圍集中在電池制備、組件封裝、光伏發(fā)電等環(huán)節(jié)
- 快報:長時儲能價值將大幅增長
- 天天觀點:雄韜股份擬105億元投建新能源電池產(chǎn)業(yè)園
- 熱門看點:80億元!40GWh!比亞迪河南鄭州電池生產(chǎn)線項目環(huán)評公示
- 長慶油田公積金貸款流程圖(長慶油田公積金貸款流程)
- 星巴克的咖啡文化是什么?星巴克咖啡公司哪一年成立?
- 微頭條丨星巴克冰粽子要放冰箱嗎?星巴克冰粽子冷藏保質(zhì)期多久?
- 怎么把視頻下到蘋果手機里?把視頻下到蘋果手機里的步驟有哪些?
- 怎樣洗豬腰子沒味?清洗豬腰子沒味的方法?
- 環(huán)球時訊:《中國大案錄》_中國大案錄全集
- 視訊!星巴克logo是誰?星巴克logo怎么來的?
- 世界聚焦:儲能中標丨中核河南安陽獨立共享儲能項目一期PC公示
- 天天微頭條丨qq群怎么上傳文件?qq群上傳文件的步驟?
- 蘇州哪里買絲綢?在蘇州買絲綢的地方有哪些?
- 短訊!四川哪家旅行社比較好?四川有多少家旅行社?
- 即時:河北移動校訊通是什么?河北移動校訊通介紹?
- 長安期貨原油早評:偏弱震蕩,區(qū)間偏空短差為主
- 沈陽有哪些旅行社?沈陽十大旅行社排名一覽?
- 熱推薦:國信期貨早評:金銀震蕩調(diào)整延續(xù),關(guān)注晚間CPI數(shù)據(jù)
- 【聚看點】黃金市場分析:突破1877美元對升向1885美元阻力至關(guān)重要
- 世界速訊:天奇股份:目前公司及子公司未直接持有深圳市優(yōu)必選科技股份有限公司的股份
- 2月14日匯市觀潮:歐元、英鎊和日元技術(shù)分析
- 陜國投A:感謝對我公司的關(guān)注與支持!截至2023年2月10日收盤,我公司在冊股東總數(shù)為85227戶
- 全球快播:寧波銀行:根據(jù)目前政策,我行暫不能在省外地市新開設(shè)分行
- 今頭條!配儲15MW/30MWh ,隴西第二批10萬千瓦光伏競配中選結(jié)果公示
- 觀焦點:公募基金參與定增熱情高漲 22家公司年內(nèi)參與總規(guī)模近60億元